|
23456
|
韩语真歌首跑入基线 + 流水线阶段耗时 stage_timings 落盘与工作台展示
|
67
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/pull/1/head
|
ada639232a2eaf958115b36b989295eff4c75eff
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":1,"pull_request":{"id":96,"url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/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":"治理: 关闭对抗性验收发现的假绿装置、导出层静默数据损坏与文档幽灵资产","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":3228,"deletions":261,"changed_files":63,"html_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/pulls/1","diff_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/pulls/1.diff","patch_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/pulls/1.patch","mergeable":true,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"9d1500477039a937bafd4451d5b557515fc6fe23","repo_id":67,"repo":{"id":67,"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":"songformer-structure-lyrics","full_name":"luoanwu/songformer-structure-lyrics","description":"SongFormer 结构时间歌词行:结构→歌词行→字级时间流水线 + 治理底座","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1079,"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-07-29T02:12:54+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":"governance/adversarial-audit-fixes-20260728","ref":"governance/adversarial-audit-fixes-20260728","sha":"ada639232a2eaf958115b36b989295eff4c75eff","repo_id":67,"repo":{"id":67,"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":"songformer-structure-lyrics","full_name":"luoanwu/songformer-structure-lyrics","description":"SongFormer 结构时间歌词行:结构→歌词行→字级时间流水线 + 治理底座","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1079,"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-07-29T02:12:54+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":"9d1500477039a937bafd4451d5b557515fc6fe23","due_date":null,"created_at":"2026-07-29T08:39:40+08:00","updated_at":"2026-07-29T08:39:41+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"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":true,"fork":false,"template":false,"mirror":false,"size":1079,"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-07-29T02:12:54+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":[]},"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
|
6
|
1785285581
|
1785285672
|
0
|
1785285581
|
1785285674
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/pull/1/head
|
1
|
Edit
Delete
|
|
23421
|
迁移前端启动脚本至常规目录
|
51
|
5
|
ci.yml
|
4
|
8
|
0
|
refs/heads/main
|
c0618a939c6a7f40d91e9160a083313befe7c157
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"49de0c2d382fe761e459574e38b67a4d09f4604d","after":"c0618a939c6a7f40d91e9160a083313befe7c157","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/49de0c2d382fe761e459574e38b67a4d09f4604d...c0618a939c6a7f40d91e9160a083313befe7c157","commits":[{"id":"c0618a939c6a7f40d91e9160a083313befe7c157","message":"迁移前端启动脚本至常规目录\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c0618a939c6a7f40d91e9160a083313befe7c157","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-14T15:54:24+08:00","added":["团购本地生活AI运营App/scripts/serve.py"],"removed":[".claude/serve.py"],"modified":["CLAUDE.md","团购本地生活AI运营App/package.json"]}],"total_commits":0,"head_commit":{"id":"c0618a939c6a7f40d91e9160a083313befe7c157","message":"迁移前端启动脚本至常规目录\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c0618a939c6a7f40d91e9160a083313befe7c157","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-14T15:54:24+08:00","added":["团购本地生活AI运营App/scripts/serve.py"],"removed":[".claude/serve.py"],"modified":["CLAUDE.md","团购本地生活AI运营App/package.json"]},"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":true,"fork":false,"template":false,"mirror":false,"size":6630,"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-09T13:59: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":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
|
1784015687
|
1784015798
|
0
|
1784015687
|
1784015798
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23470
|
补充AI合规兜底与截图识别回归测试
|
51
|
5
|
ci.yml
|
8
|
8
|
0
|
refs/heads/main
|
bef7116148fe61f8cba8207bd921d296cb01883d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d2c80a998dd127b9cbf72d39436ca7248ffe98ae","after":"bef7116148fe61f8cba8207bd921d296cb01883d","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/d2c80a998dd127b9cbf72d39436ca7248ffe98ae...bef7116148fe61f8cba8207bd921d296cb01883d","commits":[{"id":"bef7116148fe61f8cba8207bd921d296cb01883d","message":"补充AI合规兜底与截图识别回归测试\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/bef7116148fe61f8cba8207bd921d296cb01883d","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-31T15:26:23+08:00","added":["server/src/adapters/ai/compliance.ts","server/test/ocr-provider.unit.test.ts","server/test/screenshot-import.test.ts"],"removed":[],"modified":[]},{"id":"2d5279dc8596aae5f2de99488e8668d829fbaaca","message":"优化嵌入式AI助手消息展示\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/2d5279dc8596aae5f2de99488e8668d829fbaaca","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-31T15:25:06+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/scripts/test-static.mjs"]},{"id":"7646abfa936c56b1e74a21c1a07f513f72f2bc13","message":"补充图片请求解析工具\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/7646abfa936c56b1e74a21c1a07f513f72f2bc13","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-31T15:20:24+08:00","added":["server/src/lib/image-request.ts"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"bef7116148fe61f8cba8207bd921d296cb01883d","message":"补充AI合规兜底与截图识别回归测试\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/bef7116148fe61f8cba8207bd921d296cb01883d","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-31T15:26:23+08:00","added":["server/src/adapters/ai/compliance.ts","server/test/ocr-provider.unit.test.ts","server/test/screenshot-import.test.ts"],"removed":[],"modified":[]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87405,"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: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":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
|
1785482826
|
1785482999
|
0
|
1785482825
|
1785482999
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23422
|
真值 v2 登记与全链复评:晴天人工听感纠正2(69→73 行全覆盖)
|
60
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
226033fd7f9e6266a679a585a26dfb935d56b1e2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"05d910e9c48177e24723827b424c2f8919bde17d","after":"226033fd7f9e6266a679a585a26dfb935d56b1e2","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/05d910e9c48177e24723827b424c2f8919bde17d...226033fd7f9e6266a679a585a26dfb935d56b1e2","commits":[{"id":"226033fd7f9e6266a679a585a26dfb935d56b1e2","message":"真值 v2 登记与全链复评:晴天人工听感纠正2(69→73 行全覆盖)\n\n- 用户提供的人工听感纠正 v2 登记进曲库 assets(check:library 绿);\n 补齐 v1 缺失的 4 行真值 + 12 行几十毫秒级精修\n- 全链复评(73/73 覆盖):拼接链行级 median 181/p90 531/≤500ms 89.0%,\n 切片基线 189/750/74.0%——C61 优势保持;SOFA 推算 median 64ms、\n 逐行判胜 41:21——根因分析结论(HubertFA 歌唱边界质量为主因)在\n 精修真值下全部稳定,排除真值口径伪影\n- 证据 reports/model-evidence/qingtian-precision-truth-v2.latest.json\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/226033fd7f9e6266a679a585a26dfb935d56b1e2","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T03:48:35-07:00","added":["reports/model-evidence/qingtian-precision-truth-v2.latest.json"],"removed":[],"modified":["曲库/library.latest.json"]}],"total_commits":0,"head_commit":{"id":"226033fd7f9e6266a679a585a26dfb935d56b1e2","message":"真值 v2 登记与全链复评:晴天人工听感纠正2(69→73 行全覆盖)\n\n- 用户提供的人工听感纠正 v2 登记进曲库 assets(check:library 绿);\n 补齐 v1 缺失的 4 行真值 + 12 行几十毫秒级精修\n- 全链复评(73/73 覆盖):拼接链行级 median 181/p90 531/≤500ms 89.0%,\n 切片基线 189/750/74.0%——C61 优势保持;SOFA 推算 median 64ms、\n 逐行判胜 41:21——根因分析结论(HubertFA 歌唱边界质量为主因)在\n 精修真值下全部稳定,排除真值口径伪影\n- 证据 reports/model-evidence/qingtian-precision-truth-v2.latest.json\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/226033fd7f9e6266a679a585a26dfb935d56b1e2","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T03:48:35-07:00","added":["reports/model-evidence/qingtian-precision-truth-v2.latest.json"],"removed":[],"modified":["曲库/library.latest.json"]},"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":4057,"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-14T15:16:29+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1784026122
|
1784026213
|
0
|
1784026121
|
1784026213
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23411
|
治理状态:记录第二轮修复,版本 0.2.1
|
61
|
5
|
kb.yml
|
1
|
5
|
0
|
refs/heads/main
|
7e38caa7a9a622e250ab06620cd295404fd97f4a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"7e38caa7a9a622e250ab06620cd295404fd97f4a","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"7e38caa7a9a622e250ab06620cd295404fd97f4a","message":"治理状态:记录第二轮修复,版本 0.2.1\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/7e38caa7a9a622e250ab06620cd295404fd97f4a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:50:38-07:00","added":[],"removed":[],"modified":["VERSION","docs/governance-status.md"]},{"id":"c7294d6f71f7653ea197b3e3333da9ed54d19e63","message":"reindex 增量优化与审计库并发加固\n\n1. reindex: 内容未变仅被 touch 的文件不再重分块重写索引,只刷新\n 元数据。新增显式 --fast((mtime,size) 未变即跳过,不读文件),\n 供大语料 nightly 使用;默认仍全量哈希 —— rsync/tar 会保留\n mtime,同 mtime 改内容只有 sha 抓得到,该保证有单测钉住,\n 不能默认放弃。\n2. audit_log: WAL + busy_timeout —— 多 MCP 客户端并发写同一\n 审计库时避免 database is locked(审计失败虽不改变检索答案,\n 但监控会失明)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/c7294d6f71f7653ea197b3e3333da9ed54d19e63","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:49:42-07:00","added":[],"removed":[],"modified":["lib/audit_log.py","lib/kb_core.py"]},{"id":"3ca2d7515b057ec3f22fa89f95d4eea2cf37aba6","message":"治理工具:冲突策略语义区分、词表结构体检 T4、修死引用\n\n1. conflict_policy: source_priority 与 source_then_latest 此前实现\n 完全相同,是假选项。现区分语义 —— source_priority 只按来源优先级\n 裁决,并列最高交回人工(needs_manual_review);要用时间破并列的\n 显式选 source_then_latest。补两条并列场景测试。\n2. wiki terms 新增 T4 词表结构体检,抓两种静默失效:\n - 跨行重叠的同义词组不会自动合并(查 A 组的词展开不到 B 组);\n - 含空白的成员在查询侧按空格被切开,整词永远不可达。\n 实测在现网 syn.tsv 上即抓到「error code」不可达键。\n3. README: PLAN.md 三处死引用改指 docs/technical-plan.md;\n wiki terms 输出不再提示不存在的 --llm 参数。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/3ca2d7515b057ec3f22fa89f95d4eea2cf37aba6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:47:58-07:00","added":[],"removed":[],"modified":["README.md","lib/conflict_policy.py","lib/wiki_terms.py","tests/test_conflict_policy.py"]},{"id":"a8d855f96127e7467c70eb9e25deb040fce55201","message":"信任边界:TRUNCATED 诊断移出信封,grep 与 fts 检索面对齐\n\n1. emit(): 截断提示此前 printf 到 stdout,会被 kb_tools 包进\n \u003ckb_result\u003e 信封 —— SOP 一边要求 agent 对 TRUNCATED 缩小范围,\n 一边要求无视信封内一切指令,自相矛盾;审计 status_of 只看\n stderr,截断也漏记。改走 stderr,并在 audit_log 增加\n 'truncated' 状态。\n2. kb grep: 导航层(INDEX/_index/README)此前只在 fts 侧被排除,\n grep 会命中并让 agent 引用 INDEX.md 的行当证据。rg 用 --iglob、\n grep 用 --exclude 与 fts 的 NAV 列表对齐。\n3. emit(): wc -c 前导空格清理(macOS 输出对齐问题)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/a8d855f96127e7467c70eb9e25deb040fce55201","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:46:07-07:00","added":[],"removed":[],"modified":["kb","lib/audit_log.py"]},{"id":"4a3ea648c8f46c0456e25ca97a476819d7421404","message":"评测口径:grep 兜底改用真分词,幻觉率剔除注入行\n\n1. run_eval: grep 兜底探测词此前按空格切 —— 中文 query 没有空格,\n 整句丢给 grep 恒 0 命中,所有中文落空都被误判成「语义 gap →\n 该上 vec」,而处方本该是「补 syn.tsv」。这是本工具的核心判定,\n 现改用 kb_core.units() 同源分词 + 停用词过滤,只取真词探测。\n 实测: '包厢无声怎么办' 探测词从 [整句] 变为 [包厢, 无声]。\n2. run_eval: 清理 'if True else' 死代码;新增 --syn(默认与检索侧\n 同源 \u003ckb\u003e/conf/syn.tsv)。\n3. agent_eval: 幻觉率/正确率的分母剔除注入演练行 —— 注入行\n hallucinated 恒 False,混入会稀释幻觉率,又把「抵抗成功」记成\n 正确答案。注入有自己的 --gate-injection。\n4. agent_eval: 引用正则补 .mdx(EXTS 支持它,引用 mdx 的正确回答\n 此前会被误判为幻觉)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/4a3ea648c8f46c0456e25ca97a476819d7421404","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:44:32-07:00","added":[],"removed":[],"modified":["eval/agent_eval.py","eval/run_eval.py"]}],"total_commits":0,"head_commit":{"id":"7e38caa7a9a622e250ab06620cd295404fd97f4a","message":"治理状态:记录第二轮修复,版本 0.2.1\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/llmbash/commit/7e38caa7a9a622e250ab06620cd295404fd97f4a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T19:50:38-07:00","added":[],"removed":[],"modified":["VERSION","docs/governance-status.md"]},"repository":{"id":61,"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":"llmbash","full_name":"luoanwu/llmbash","description":"LLM Agent 知识库检索、导入、评测与治理工具","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/llmbash/languages","html_url":"https://gitea.g-hi.com/luoanwu/llmbash","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/llmbash","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/llmbash.git","clone_url":"https://gitea.g-hi.com/luoanwu/llmbash.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:38:52+08:00","updated_at":"2026-07-14T12:39:16+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
|
1784003957
|
1784011490
|
0
|
1784003956
|
1784011490
|
|
|
0
|
Edit
Delete
|
|
23390
|
更新 项目深度分析报告_2026-03-02.md
|
6
|
5
|
ci.yml
|
23306
|
1
|
0
|
refs/heads/main
|
91f125bd289d82c469493539589d79318bb96269
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d9e0ab1d9cbc0d7707781f8b0c9a5a49103ace8b","after":"91f125bd289d82c469493539589d79318bb96269","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/d9e0ab1d9cbc0d7707781f8b0c9a5a49103ace8b...91f125bd289d82c469493539589d79318bb96269","commits":[{"id":"91f125bd289d82c469493539589d79318bb96269","message":"更新 项目深度分析报告_2026-03-02.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/91f125bd289d82c469493539589d79318bb96269","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-05-26T17:11:39+08:00","added":[],"removed":[],"modified":["项目深度分析报告_2026-03-02.md"]}],"total_commits":0,"head_commit":{"id":"91f125bd289d82c469493539589d79318bb96269","message":"更新 项目深度分析报告_2026-03-02.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/91f125bd289d82c469493539589d79318bb96269","author":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"committer":{"name":"zhangjunnan","email":"121158035@qq.com","username":"zhangjunnan"},"verification":null,"timestamp":"2026-05-26T17:11:39+08:00","added":[],"removed":[],"modified":["项目深度分析报告_2026-03-02.md"]},"repository":{"id":6,"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","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5489164,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":11,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-25T16:25: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":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"1+zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"zhangjunnan"},"sender":{"id":1,"login":"zhangjunnan","login_name":"","source_id":0,"full_name":"","email":"1+zhangjunnan@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/db7dcb12d6f370df9341167b55583f8b","html_url":"https://gitea.g-hi.com/zhangjunnan","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T15:36:25+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"zhangjunnan"}}...
|
push
|
2
|
16
|
1779786702
|
1779788550
|
0
|
1779786701
|
1779788550
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-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
|
|
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
|
|
23473
|
接入阿里模型
|
51
|
5
|
ci.yml
|
11
|
8
|
0
|
refs/heads/main
|
d230fd6dfb8fdba731ca1356263d1ec584d734be
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ead57a81e98d7f55797e6963b61e4847d9d9a96d","after":"d230fd6dfb8fdba731ca1356263d1ec584d734be","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ead57a81e98d7f55797e6963b61e4847d9d9a96d...d230fd6dfb8fdba731ca1356263d1ec584d734be","commits":[{"id":"d230fd6dfb8fdba731ca1356263d1ec584d734be","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d230fd6dfb8fdba731ca1356263d1ec584d734be","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-31T17:31:49+08:00","added":[],"removed":["团购本地生活AI运营App/nginx.conf"],"modified":["COLIMA.md","docker-compose.colima.yml","scripts/colima-start.sh","团购本地生活AI运营App/Dockerfile","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/docker-entrypoint.d/40-yggdrasil-runtime-config.sh"]}],"total_commits":0,"head_commit":{"id":"d230fd6dfb8fdba731ca1356263d1ec584d734be","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d230fd6dfb8fdba731ca1356263d1ec584d734be","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-31T17:31:49+08:00","added":[],"removed":["团购本地生活AI运营App/nginx.conf"],"modified":["COLIMA.md","docker-compose.colima.yml","scripts/colima-start.sh","团购本地生活AI运营App/Dockerfile","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/docker-entrypoint.d/40-yggdrasil-runtime-config.sh"]},"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":87491,"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-31T16:21: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":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
|
1785490315
|
1785490466
|
0
|
1785490315
|
1785490466
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23474
|
接入阿里模型
|
51
|
5
|
ci.yml
|
12
|
8
|
0
|
refs/heads/main
|
88fb2aa68377d24865992a812dc9dfb5f200569c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d230fd6dfb8fdba731ca1356263d1ec584d734be","after":"88fb2aa68377d24865992a812dc9dfb5f200569c","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/d230fd6dfb8fdba731ca1356263d1ec584d734be...88fb2aa68377d24865992a812dc9dfb5f200569c","commits":[{"id":"88fb2aa68377d24865992a812dc9dfb5f200569c","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/88fb2aa68377d24865992a812dc9dfb5f200569c","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-31T17:58:13+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html"]}],"total_commits":0,"head_commit":{"id":"88fb2aa68377d24865992a812dc9dfb5f200569c","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/88fb2aa68377d24865992a812dc9dfb5f200569c","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-31T17:58:13+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html"]},"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":87503,"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-31T17:31:55+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
|
1785491899
|
1785493049
|
0
|
1785491898
|
1785493049
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23410
|
初始提交:嗨赞AI制作平台(含 C1–C59 全部治理轮次)
|
60
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
f73daf0a17c4cd19344f03ba21afcc326a49a650
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"f73daf0a17c4cd19344f03ba21afcc326a49a650","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"f73daf0a17c4cd19344f03ba21afcc326a49a650","message":"初始提交:嗨赞AI制作平台(含 C1–C59 全部治理轮次)\n\n从 基础框架 派生的 AI 歌词对齐制作平台。契约单源 @repo/contracts + 双后端\n(NestJS/Fastify)对等 + Next.js studio 前端 + Python 模型 workers。\n\n治理基线(reports/baseline.json 棘轮):\n- 静态门禁 pnpm check 全绿(naming/schema/validation/contract-consumers/\n dual-backend/concurrency-guard/migrations/models/alignment-models/library/\n lyra-parity/governance-docs)\n- check:runtime 316/316、check:ui 32/32、own-tests 39 文件 348 用例\n\n体积纪律:模型权重(~13GB)与曲库音频(含受版权保护素材)不入库,\n仅保留 models/model-assets.v1.json 与 曲库/library.latest.json 两份登记真源\n(check:models / check:library 据此比对磁盘实况)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/f73daf0a17c4cd19344f03ba21afcc326a49a650","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T20:23:16-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260709151138_alignment_domain/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/alignment/alignment-coarse.ts","apps/api-fastify/src/modules/alignment/alignment-mms-fa.ts","apps/api-fastify/src/modules/alignment/alignment-pipeline.ts","apps/api-fastify/src/modules/alignment/alignment-scoring.ts","apps/api-fastify/src/modules/alignment/alignment-separation-htdemucs.ts","apps/api-fastify/src/modules/alignment/alignment-separation-larsnet.ts","apps/api-fastify/src/modules/alignment/alignment-separation.ts","apps/api-fastify/src/modules/alignment/alignment-structure.ts","apps/api-fastify/src/modules/alignment/alignment-verification.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/song-assets/song-assets.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/plugins/storage.ts","apps/api-fastify/src/routes/alignment.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/song-assets.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/alignment.coarse.test.ts","apps/api-fastify/test/alignment.http.test.ts","apps/api-fastify/test/alignment.integration.test.ts","apps/api-fastify/test/alignment.mms-fa.test.ts","apps/api-fastify/test/alignment.pipeline.test.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.separation-htdemucs.test.ts","apps/api-fastify/test/alignment.separation-larsnet.test.ts","apps/api-fastify/test/alignment.separation.test.ts","apps/api-fastify/test/alignment.structure.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260709151138_alignment_domain/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.module.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/alignment/song-assets.controller.ts","apps/api-nestjs/src/alignment/song-assets.service.ts","apps/api-nestjs/src/alignment/storage.provider.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/api-error-body.filter.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/alignment.coarse.test.ts","apps/api-nestjs/test/alignment.http.test.ts","apps/api-nestjs/test/alignment.integration.test.ts","apps/api-nestjs/test/alignment.mms-fa.test.ts","apps/api-nestjs/test/alignment.pipeline.test.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.separation-htdemucs.test.ts","apps/api-nestjs/test/alignment.separation-larsnet.test.ts","apps/api-nestjs/test/alignment.separation.test.ts","apps/api-nestjs/test/alignment.structure.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/e2e/baselines/lyra-prototype-v3-batch.png","apps/web/e2e/baselines/lyra-prototype-v3-delivery.png","apps/web/e2e/baselines/lyra-prototype-v3-info.png","apps/web/e2e/baselines/lyra-prototype-v3-workbench.png","apps/web/e2e/lyra-studio.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/studio/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/features/alignment/api.ts","apps/web/src/features/alignment/queries.ts","apps/web/src/features/lyra-studio/components/LyraStudio.tsx","apps/web/src/features/lyra-studio/components/PipelineBar.tsx","apps/web/src/features/lyra-studio/components/RunLoadErrorBanner.tsx","apps/web/src/features/lyra-studio/components/TopBar.tsx","apps/web/src/features/lyra-studio/components/canvas/PitchGridCanvas.tsx","apps/web/src/features/lyra-studio/components/canvas/VocalSpectrumCanvas.tsx","apps/web/src/features/lyra-studio/components/center/MvViewport.tsx","apps/web/src/features/lyra-studio/components/center/Transport.tsx","apps/web/src/features/lyra-studio/components/detail/RegionControlBar.tsx","apps/web/src/features/lyra-studio/components/lanes/LyricWorkspace.tsx","apps/web/src/features/lyra-studio/components/lanes/MainPlayhead.tsx","apps/web/src/features/lyra-studio/components/lanes/PhonemeLane.tsx","apps/web/src/features/lyra-studio/components/lanes/PitchLane.tsx","apps/web/src/features/lyra-studio/components/lanes/RefineLane.tsx","apps/web/src/features/lyra-studio/components/lanes/RegionLane.tsx","apps/web/src/features/lyra-studio/components/lanes/SentenceLane.tsx","apps/web/src/features/lyra-studio/components/lanes/VocalLane.tsx","apps/web/src/features/lyra-studio/components/left/AnalysisStub.tsx","apps/web/src/features/lyra-studio/components/left/LeftPanel.tsx","apps/web/src/features/lyra-studio/components/left/TrackCard.tsx","apps/web/src/features/lyra-studio/components/left/TrackMixer.tsx","apps/web/src/features/lyra-studio/components/modals/BatchModal.tsx","apps/web/src/features/lyra-studio/components/modals/CommitModal.tsx","apps/web/src/features/lyra-studio/components/modals/LoadModal.tsx","apps/web/src/features/lyra-studio/components/modals/ModalShell.tsx","apps/web/src/features/lyra-studio/components/modals/ResetModal.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/components/right/InfoTab.tsx","apps/web/src/features/lyra-studio/components/right/LyricsTab.tsx","apps/web/src/features/lyra-studio/components/right/PendingTab.tsx","apps/web/src/features/lyra-studio/components/right/RightPanel.tsx","apps/web/src/features/lyra-studio/components/right/RunEvidenceCard.tsx","apps/web/src/features/lyra-studio/components/timeline/GlobalTimeline.tsx","apps/web/src/features/lyra-studio/components/timeline/SeekWaveformCanvas.tsx","apps/web/src/features/lyra-studio/constants.ts","apps/web/src/features/lyra-studio/demoArtifacts.ts","apps/web/src/features/lyra-studio/fixtures/panels.ts","apps/web/src/features/lyra-studio/fixtures/segments.ts","apps/web/src/features/lyra-studio/fixtures/tracks.ts","apps/web/src/features/lyra-studio/hooks/useAudioPlayback.ts","apps/web/src/features/lyra-studio/hooks/useGlobalHotkeys.ts","apps/web/src/features/lyra-studio/hooks/useLaneDrags.ts","apps/web/src/features/lyra-studio/hooks/usePointerDrag.ts","apps/web/src/features/lyra-studio/hooks/useRafClock.ts","apps/web/src/features/lyra-studio/hooks/useScaleToFit.ts","apps/web/src/features/lyra-studio/hooks/useStudioBridge.ts","apps/web/src/features/lyra-studio/hooks/useWin.ts","apps/web/src/features/lyra-studio/prototypeV3.ts","apps/web/src/features/lyra-studio/runMapping.ts","apps/web/src/features/lyra-studio/store/selectors.ts","apps/web/src/features/lyra-studio/store/useStudioStore.ts","apps/web/src/features/lyra-studio/trackAudio.ts","apps/web/src/features/lyra-studio/types.ts","apps/web/src/features/lyra-studio/utils/realSpectrum.ts","apps/web/src/features/lyra-studio/utils/realWaveform.ts","apps/web/src/features/lyra-studio/utils/seededRandom.ts","apps/web/src/features/lyra-studio/utils/spectro.ts","apps/web/src/features/lyra-studio/utils/styles.ts","apps/web/src/features/lyra-studio/utils/time.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","design-qa.md","docker-compose.yml","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/lyric-alignment-production-blueprint.md","docs/domain/owner-matrix.md","docs/domain/stars-full-alignment-integration-assessment.md","docs/migration-notes.md","docs/prd/lyra-alignment-studio-prd.md","docs/prototypes/Lyra Alignment Studio (3)_副本.html","docs/prototypes/_lyra_extracted/0f3afcd6-3e42-43c6-bc2c-f7a7241d8cfc.js","docs/prototypes/_lyra_extracted/5e249108-9e25-49d4-aead-4a42da391445.txt","docs/prototypes/_lyra_extracted/6b20a626-d5f0-4ece-a2d4-3f3f7a96342e.txt","docs/prototypes/_lyra_extracted/78e3f258-31fe-4530-a312-1113810fd6c7.txt","docs/prototypes/_lyra_extracted/85a75d15-031b-454b-b8a4-728a88f2c03e.js","docs/prototypes/_lyra_extracted/8905ed0e-91a0-4b9e-8d49-fa1867515d0f.js","docs/prototypes/_lyra_extracted/app-dc-script.js","docs/prototypes/_lyra_extracted/e3ceeb25-f278-400d-8f89-200ca38d9d34.txt","docs/prototypes/_lyra_extracted/e456d310-3c72-4ccc-91a6-f34216a66722.txt","docs/prototypes/_lyra_extracted/e9425a8b-83ce-48d4-94d4-eb98f6c69c2b.txt","docs/prototypes/_lyra_extracted/template-body.html","docs/prototypes/_lyra_extracted/template-styles.css","docs/prototypes/_lyra_extracted/template.html","docs/prototypes/lyra-alignment-studio-elevation.md","docs/prototypes/lyra-alignment-studio-v2.html","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/alignment-export.ts","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/contracts/src/alignment.test.ts","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/src/vtc.ts","packages/contracts/tsconfig.json","packages/model-readiness/package.json","packages/model-readiness/src/index.ts","packages/model-readiness/src/readiness.test.ts","packages/model-readiness/tsconfig.json","packages/pipeline-runner/package.json","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","packages/pipeline-runner/tsconfig.json","packages/storage/package.json","packages/storage/src/index.ts","packages/storage/src/storage.test.ts","packages/storage/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/alignment-integrity-qingtian.latest.json","reports/alignment-models.latest.json","reports/alignment-text-crosscheck-qingtian.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/design-audit/material-loading-2026-07-11/01-material-loading-current.png","reports/design-audit/material-loading-2026-07-11/02-material-loading-improved.png","reports/design-audit/material-loading-2026-07-11/03-material-loading-create.png","reports/design-audit/material-loading-2026-07-11/audit.md","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-acquisition.latest.json","reports/model-assets.latest.json","reports/model-evidence/audio-separator-smoke.latest.json","reports/model-evidence/cantonese-coarse.latest.json","reports/model-evidence/energy-dynamics.latest.json","reports/model-evidence/harmonic-functional.latest.json","reports/model-evidence/hubertfa-smoke.latest.json","reports/model-evidence/hubertfa-sofa-fusion-smoke.latest.json","reports/model-evidence/key-v2.latest.json","reports/model-evidence/larsnet-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/pipeline-smoke.latest.json","reports/model-evidence/qingtian-pipeline-proposal.latest.json","reports/model-evidence/qingtian-precision.latest.json","reports/model-evidence/separation-smoke.latest.json","reports/model-evidence/sofa-acoustic-smoke.latest.json","reports/model-evidence/stars-align-smoke.latest.json","reports/model-evidence/stars-qingtian-precision.latest.json","reports/model-evidence/stars-smoke.latest.json","reports/model-evidence/structure-repetition.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/model-evidence/vocal-classification-models.latest.json","reports/model-evidence/vocal-melody.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/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/acquire-models.mjs","scripts/check-alignment-models.mjs","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-lyra-prototype-parity.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-song-library.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","tsconfig.base.json","turbo.json","workers/audio-separator/README.md","workers/audio-separator/requirements_audio_separator.txt","workers/audio-separator/run_separation.py","workers/coarse/README.md","workers/coarse/eval_language_routing.py","workers/coarse/requirements_coarse.txt","workers/coarse/run_coarse.py","workers/fusion/README.md","workers/fusion/run_fusion.py","workers/hubertfa/README.md","workers/hubertfa/requirements_onnx_cpu.txt","workers/hubertfa/scripts/run_hubertfa_align.py","workers/larsnet/README.md","workers/larsnet/run_larsnet.py","workers/lyrics-cleaner/run_clean_lyrics.py","workers/mms-fa/README.md","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/pipeline/README.md","workers/pipeline/compare_with_kas.py","workers/pipeline/g2p.py","workers/pipeline/requirements.txt","workers/pipeline/run_pipeline.py","workers/separation/README.md","workers/separation/run_separation.py","workers/sofa-acoustic/README.md","workers/sofa-acoustic/requirements.txt","workers/sofa-acoustic/run_sofa_acoustic.py","workers/sofa-acoustic/vendor/sofa/.gitignore","workers/sofa-acoustic/vendor/sofa/LICENSE","workers/sofa-acoustic/vendor/sofa/README.MD","workers/sofa-acoustic/vendor/sofa/README_zh.MD","workers/sofa-acoustic/vendor/sofa/binarize.py","workers/sofa-acoustic/vendor/sofa/ckpt/.gitkeep","workers/sofa-acoustic/vendor/sofa/configs/binarize_config.yaml","workers/sofa-acoustic/vendor/sofa/configs/train_config.yaml","workers/sofa-acoustic/vendor/sofa/data/.gitkeep","workers/sofa-acoustic/vendor/sofa/data/binary/.gitkeep","workers/sofa-acoustic/vendor/sofa/dataset.py","workers/sofa-acoustic/vendor/sofa/dictionary/.gitkeep","workers/sofa-acoustic/vendor/sofa/dictionary/opencpop-extension.txt","workers/sofa-acoustic/vendor/sofa/evaluate.py","workers/sofa-acoustic/vendor/sofa/example.png","workers/sofa-acoustic/vendor/sofa/infer.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/base_detector.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/loudnesss_pectralcentroid_detector.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/none_detector.py","workers/sofa-acoustic/vendor/sofa/modules/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/base_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/dictionary_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/none_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/phoneme_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/readme_g2p.md","workers/sofa-acoustic/vendor/sofa/modules/g2p/readme_g2p_zh.md","workers/sofa-acoustic/vendor/sofa/modules/layer/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/activation/GLU.py","workers/sofa-acoustic/vendor/sofa/modules/layer/activation/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/backbone/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/backbone/unet.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/attention.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/conformer.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/convolution.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/func_module.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/residual.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/resnet_block.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/base.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/stride_conv.py","workers/sofa-acoustic/vendor/sofa/modules/loss/BinaryEMDLoss.py","workers/sofa-acoustic/vendor/sofa/modules/loss/GHMLoss.py","workers/sofa-acoustic/vendor/sofa/modules/loss/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/constants.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/deepunet.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/inference.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/model.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/seq.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/spec.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/utils.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/gaussian_ramp_up_scheduler.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/none_scheduler.py","workers/sofa-acoustic/vendor/sofa/modules/task/forced_alignment.py","workers/sofa-acoustic/vendor/sofa/modules/utils/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/utils/export_tool.py","workers/sofa-acoustic/vendor/sofa/modules/utils/get_melspec.py","workers/sofa-acoustic/vendor/sofa/modules/utils/label.py","workers/sofa-acoustic/vendor/sofa/modules/utils/load_wav.py","workers/sofa-acoustic/vendor/sofa/modules/utils/metrics.py","workers/sofa-acoustic/vendor/sofa/modules/utils/metrics_test.py","workers/sofa-acoustic/vendor/sofa/modules/utils/plot.py","workers/sofa-acoustic/vendor/sofa/modules/utils/post_processing.py","workers/sofa-acoustic/vendor/sofa/requirements.txt","workers/sofa-acoustic/vendor/sofa/segments/.gitkeep","workers/sofa-acoustic/vendor/sofa/train.py","workers/sofa-verifier/README.md","workers/sofa-verifier/scripts/run_sofa_align.py","workers/stars/README.md","workers/stars/g2p_stars.py","workers/stars/requirements_stars.txt","workers/stars/rmvpe/LICENSE-upstream-STARS.txt","workers/stars/rmvpe/__init__.py","workers/stars/rmvpe/constants.py","workers/stars/rmvpe/deepunet.py","workers/stars/rmvpe/mel.py","workers/stars/rmvpe/model.py","workers/stars/rmvpe/seq.py","workers/stars/rmvpe/spec.py","workers/stars/rmvpe/utils.py","workers/stars/run_stars.py","workers/stars/stars_align.py","workers/stars/vendor_stars/LICENSE-upstream-STARS.txt","workers/stars/vendor_stars/_VENDOR_NOTE.md","workers/stars/vendor_stars/_reference/inference_stars.py","workers/stars/vendor_stars/_reference/mixedtext2phoneme.py","workers/stars/vendor_stars/_reference/process_ph.py","workers/stars/vendor_stars/chinese_and_english_phone_set.json","workers/stars/vendor_stars/chinese_phone_set.json","workers/stars/vendor_stars/configs/base.yaml","workers/stars/vendor_stars/configs/stars_bilingual.yaml","workers/stars/vendor_stars/configs/stars_chinese.yaml","workers/stars/vendor_stars/modules/__init__.py","workers/stars/vendor_stars/modules/commons/__init__.py","workers/stars/vendor_stars/modules/commons/conformer/__init__.py","workers/stars/vendor_stars/modules/commons/conformer/conformer.py","workers/stars/vendor_stars/modules/commons/conformer/espnet_positional_embedding.py","workers/stars/vendor_stars/modules/commons/conformer/espnet_transformer_attn.py","workers/stars/vendor_stars/modules/commons/conformer/layers.py","workers/stars/vendor_stars/modules/commons/conv.py","workers/stars/vendor_stars/modules/commons/layers.py","workers/stars/vendor_stars/modules/commons/transformer.py","workers/stars/vendor_stars/modules/pe/__init__.py","workers/stars/vendor_stars/modules/pe/rmvpe/__init__.py","workers/stars/vendor_stars/modules/pe/rmvpe/constants.py","workers/stars/vendor_stars/modules/pe/rmvpe/deepunet.py","workers/stars/vendor_stars/modules/pe/rmvpe/extractor.py","workers/stars/vendor_stars/modules/pe/rmvpe/inference.py","workers/stars/vendor_stars/modules/pe/rmvpe/model.py","workers/stars/vendor_stars/modules/pe/rmvpe/seq.py","workers/stars/vendor_stars/modules/pe/rmvpe/spec.py","workers/stars/vendor_stars/modules/pe/rmvpe/utils.py","workers/stars/vendor_stars/modules/stars/__init__.py","workers/stars/vendor_stars/modules/stars/stars.py","workers/stars/vendor_stars/modules/stars/unet.py","workers/stars/vendor_stars/modules/stars/utils.py","workers/stars/vendor_stars/tasks/__init__.py","workers/stars/vendor_stars/tasks/stars/__init__.py","workers/stars/vendor_stars/tasks/stars/dataset.py","workers/stars/vendor_stars/tasks/stars/utils.py","workers/stars/vendor_stars/utils/__init__.py","workers/stars/vendor_stars/utils/audio/__init__.py","workers/stars/vendor_stars/utils/audio/align.py","workers/stars/vendor_stars/utils/audio/mel.py","workers/stars/vendor_stars/utils/audio/pitch_utils.py","workers/stars/vendor_stars/utils/commons/__init__.py","workers/stars/vendor_stars/utils/commons/ckpt_utils.py","workers/stars/vendor_stars/utils/commons/dataset_utils.py","workers/stars/vendor_stars/utils/commons/gpu_mem_track.py","workers/stars/vendor_stars/utils/commons/hparams.py","workers/stars/vendor_stars/utils/commons/indexed_datasets.py","workers/stars/vendor_stars/utils/commons/signal.py","workers/stars/vendor_stars/utils/nn/__init__.py","workers/stars/vendor_stars/utils/nn/seq_utils.py","workers/stars/vendor_stars/utils/os_utils.py","workers/stars/vendor_stars/utils/text/__init__.py","workers/stars/vendor_stars/utils/text/text_encoder.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json","曲库/library.latest.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"f73daf0a17c4cd19344f03ba21afcc326a49a650","message":"初始提交:嗨赞AI制作平台(含 C1–C59 全部治理轮次)\n\n从 基础框架 派生的 AI 歌词对齐制作平台。契约单源 @repo/contracts + 双后端\n(NestJS/Fastify)对等 + Next.js studio 前端 + Python 模型 workers。\n\n治理基线(reports/baseline.json 棘轮):\n- 静态门禁 pnpm check 全绿(naming/schema/validation/contract-consumers/\n dual-backend/concurrency-guard/migrations/models/alignment-models/library/\n lyra-parity/governance-docs)\n- check:runtime 316/316、check:ui 32/32、own-tests 39 文件 348 用例\n\n体积纪律:模型权重(~13GB)与曲库音频(含受版权保护素材)不入库,\n仅保留 models/model-assets.v1.json 与 曲库/library.latest.json 两份登记真源\n(check:models / check:library 据此比对磁盘实况)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/f73daf0a17c4cd19344f03ba21afcc326a49a650","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T20:23:16-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260709151138_alignment_domain/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/alignment/alignment-coarse.ts","apps/api-fastify/src/modules/alignment/alignment-mms-fa.ts","apps/api-fastify/src/modules/alignment/alignment-pipeline.ts","apps/api-fastify/src/modules/alignment/alignment-scoring.ts","apps/api-fastify/src/modules/alignment/alignment-separation-htdemucs.ts","apps/api-fastify/src/modules/alignment/alignment-separation-larsnet.ts","apps/api-fastify/src/modules/alignment/alignment-separation.ts","apps/api-fastify/src/modules/alignment/alignment-structure.ts","apps/api-fastify/src/modules/alignment/alignment-verification.ts","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/song-assets/song-assets.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/plugins/storage.ts","apps/api-fastify/src/routes/alignment.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/song-assets.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/alignment.coarse.test.ts","apps/api-fastify/test/alignment.http.test.ts","apps/api-fastify/test/alignment.integration.test.ts","apps/api-fastify/test/alignment.mms-fa.test.ts","apps/api-fastify/test/alignment.pipeline.test.ts","apps/api-fastify/test/alignment.scoring.test.ts","apps/api-fastify/test/alignment.separation-htdemucs.test.ts","apps/api-fastify/test/alignment.separation-larsnet.test.ts","apps/api-fastify/test/alignment.separation.test.ts","apps/api-fastify/test/alignment.structure.test.ts","apps/api-fastify/test/alignment.verification.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260709151138_alignment_domain/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.module.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/src/alignment/song-assets.controller.ts","apps/api-nestjs/src/alignment/song-assets.service.ts","apps/api-nestjs/src/alignment/storage.provider.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/api-error-body.filter.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/alignment.coarse.test.ts","apps/api-nestjs/test/alignment.http.test.ts","apps/api-nestjs/test/alignment.integration.test.ts","apps/api-nestjs/test/alignment.mms-fa.test.ts","apps/api-nestjs/test/alignment.pipeline.test.ts","apps/api-nestjs/test/alignment.scoring.test.ts","apps/api-nestjs/test/alignment.separation-htdemucs.test.ts","apps/api-nestjs/test/alignment.separation-larsnet.test.ts","apps/api-nestjs/test/alignment.separation.test.ts","apps/api-nestjs/test/alignment.structure.test.ts","apps/api-nestjs/test/alignment.verification.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/e2e/baselines/lyra-prototype-v3-batch.png","apps/web/e2e/baselines/lyra-prototype-v3-delivery.png","apps/web/e2e/baselines/lyra-prototype-v3-info.png","apps/web/e2e/baselines/lyra-prototype-v3-workbench.png","apps/web/e2e/lyra-studio.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/studio/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/features/alignment/api.ts","apps/web/src/features/alignment/queries.ts","apps/web/src/features/lyra-studio/components/LyraStudio.tsx","apps/web/src/features/lyra-studio/components/PipelineBar.tsx","apps/web/src/features/lyra-studio/components/RunLoadErrorBanner.tsx","apps/web/src/features/lyra-studio/components/TopBar.tsx","apps/web/src/features/lyra-studio/components/canvas/PitchGridCanvas.tsx","apps/web/src/features/lyra-studio/components/canvas/VocalSpectrumCanvas.tsx","apps/web/src/features/lyra-studio/components/center/MvViewport.tsx","apps/web/src/features/lyra-studio/components/center/Transport.tsx","apps/web/src/features/lyra-studio/components/detail/RegionControlBar.tsx","apps/web/src/features/lyra-studio/components/lanes/LyricWorkspace.tsx","apps/web/src/features/lyra-studio/components/lanes/MainPlayhead.tsx","apps/web/src/features/lyra-studio/components/lanes/PhonemeLane.tsx","apps/web/src/features/lyra-studio/components/lanes/PitchLane.tsx","apps/web/src/features/lyra-studio/components/lanes/RefineLane.tsx","apps/web/src/features/lyra-studio/components/lanes/RegionLane.tsx","apps/web/src/features/lyra-studio/components/lanes/SentenceLane.tsx","apps/web/src/features/lyra-studio/components/lanes/VocalLane.tsx","apps/web/src/features/lyra-studio/components/left/AnalysisStub.tsx","apps/web/src/features/lyra-studio/components/left/LeftPanel.tsx","apps/web/src/features/lyra-studio/components/left/TrackCard.tsx","apps/web/src/features/lyra-studio/components/left/TrackMixer.tsx","apps/web/src/features/lyra-studio/components/modals/BatchModal.tsx","apps/web/src/features/lyra-studio/components/modals/CommitModal.tsx","apps/web/src/features/lyra-studio/components/modals/LoadModal.tsx","apps/web/src/features/lyra-studio/components/modals/ModalShell.tsx","apps/web/src/features/lyra-studio/components/modals/ResetModal.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/components/right/InfoTab.tsx","apps/web/src/features/lyra-studio/components/right/LyricsTab.tsx","apps/web/src/features/lyra-studio/components/right/PendingTab.tsx","apps/web/src/features/lyra-studio/components/right/RightPanel.tsx","apps/web/src/features/lyra-studio/components/right/RunEvidenceCard.tsx","apps/web/src/features/lyra-studio/components/timeline/GlobalTimeline.tsx","apps/web/src/features/lyra-studio/components/timeline/SeekWaveformCanvas.tsx","apps/web/src/features/lyra-studio/constants.ts","apps/web/src/features/lyra-studio/demoArtifacts.ts","apps/web/src/features/lyra-studio/fixtures/panels.ts","apps/web/src/features/lyra-studio/fixtures/segments.ts","apps/web/src/features/lyra-studio/fixtures/tracks.ts","apps/web/src/features/lyra-studio/hooks/useAudioPlayback.ts","apps/web/src/features/lyra-studio/hooks/useGlobalHotkeys.ts","apps/web/src/features/lyra-studio/hooks/useLaneDrags.ts","apps/web/src/features/lyra-studio/hooks/usePointerDrag.ts","apps/web/src/features/lyra-studio/hooks/useRafClock.ts","apps/web/src/features/lyra-studio/hooks/useScaleToFit.ts","apps/web/src/features/lyra-studio/hooks/useStudioBridge.ts","apps/web/src/features/lyra-studio/hooks/useWin.ts","apps/web/src/features/lyra-studio/prototypeV3.ts","apps/web/src/features/lyra-studio/runMapping.ts","apps/web/src/features/lyra-studio/store/selectors.ts","apps/web/src/features/lyra-studio/store/useStudioStore.ts","apps/web/src/features/lyra-studio/trackAudio.ts","apps/web/src/features/lyra-studio/types.ts","apps/web/src/features/lyra-studio/utils/realSpectrum.ts","apps/web/src/features/lyra-studio/utils/realWaveform.ts","apps/web/src/features/lyra-studio/utils/seededRandom.ts","apps/web/src/features/lyra-studio/utils/spectro.ts","apps/web/src/features/lyra-studio/utils/styles.ts","apps/web/src/features/lyra-studio/utils/time.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","design-qa.md","docker-compose.yml","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/lyric-alignment-production-blueprint.md","docs/domain/owner-matrix.md","docs/domain/stars-full-alignment-integration-assessment.md","docs/migration-notes.md","docs/prd/lyra-alignment-studio-prd.md","docs/prototypes/Lyra Alignment Studio (3)_副本.html","docs/prototypes/_lyra_extracted/0f3afcd6-3e42-43c6-bc2c-f7a7241d8cfc.js","docs/prototypes/_lyra_extracted/5e249108-9e25-49d4-aead-4a42da391445.txt","docs/prototypes/_lyra_extracted/6b20a626-d5f0-4ece-a2d4-3f3f7a96342e.txt","docs/prototypes/_lyra_extracted/78e3f258-31fe-4530-a312-1113810fd6c7.txt","docs/prototypes/_lyra_extracted/85a75d15-031b-454b-b8a4-728a88f2c03e.js","docs/prototypes/_lyra_extracted/8905ed0e-91a0-4b9e-8d49-fa1867515d0f.js","docs/prototypes/_lyra_extracted/app-dc-script.js","docs/prototypes/_lyra_extracted/e3ceeb25-f278-400d-8f89-200ca38d9d34.txt","docs/prototypes/_lyra_extracted/e456d310-3c72-4ccc-91a6-f34216a66722.txt","docs/prototypes/_lyra_extracted/e9425a8b-83ce-48d4-94d4-eb98f6c69c2b.txt","docs/prototypes/_lyra_extracted/template-body.html","docs/prototypes/_lyra_extracted/template-styles.css","docs/prototypes/_lyra_extracted/template.html","docs/prototypes/lyra-alignment-studio-elevation.md","docs/prototypes/lyra-alignment-studio-v2.html","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/alignment-export.ts","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/contracts/src/alignment.test.ts","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/src/vtc.ts","packages/contracts/tsconfig.json","packages/model-readiness/package.json","packages/model-readiness/src/index.ts","packages/model-readiness/src/readiness.test.ts","packages/model-readiness/tsconfig.json","packages/pipeline-runner/package.json","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","packages/pipeline-runner/tsconfig.json","packages/storage/package.json","packages/storage/src/index.ts","packages/storage/src/storage.test.ts","packages/storage/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/alignment-integrity-qingtian.latest.json","reports/alignment-models.latest.json","reports/alignment-text-crosscheck-qingtian.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/design-audit/material-loading-2026-07-11/01-material-loading-current.png","reports/design-audit/material-loading-2026-07-11/02-material-loading-improved.png","reports/design-audit/material-loading-2026-07-11/03-material-loading-create.png","reports/design-audit/material-loading-2026-07-11/audit.md","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-acquisition.latest.json","reports/model-assets.latest.json","reports/model-evidence/audio-separator-smoke.latest.json","reports/model-evidence/cantonese-coarse.latest.json","reports/model-evidence/energy-dynamics.latest.json","reports/model-evidence/harmonic-functional.latest.json","reports/model-evidence/hubertfa-smoke.latest.json","reports/model-evidence/hubertfa-sofa-fusion-smoke.latest.json","reports/model-evidence/key-v2.latest.json","reports/model-evidence/larsnet-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/pipeline-smoke.latest.json","reports/model-evidence/qingtian-pipeline-proposal.latest.json","reports/model-evidence/qingtian-precision.latest.json","reports/model-evidence/separation-smoke.latest.json","reports/model-evidence/sofa-acoustic-smoke.latest.json","reports/model-evidence/stars-align-smoke.latest.json","reports/model-evidence/stars-qingtian-precision.latest.json","reports/model-evidence/stars-smoke.latest.json","reports/model-evidence/structure-repetition.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/model-evidence/vocal-classification-models.latest.json","reports/model-evidence/vocal-melody.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/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/acquire-models.mjs","scripts/check-alignment-models.mjs","scripts/check-contract-consumers.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-lyra-prototype-parity.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-song-library.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","tsconfig.base.json","turbo.json","workers/audio-separator/README.md","workers/audio-separator/requirements_audio_separator.txt","workers/audio-separator/run_separation.py","workers/coarse/README.md","workers/coarse/eval_language_routing.py","workers/coarse/requirements_coarse.txt","workers/coarse/run_coarse.py","workers/fusion/README.md","workers/fusion/run_fusion.py","workers/hubertfa/README.md","workers/hubertfa/requirements_onnx_cpu.txt","workers/hubertfa/scripts/run_hubertfa_align.py","workers/larsnet/README.md","workers/larsnet/run_larsnet.py","workers/lyrics-cleaner/run_clean_lyrics.py","workers/mms-fa/README.md","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/pipeline/README.md","workers/pipeline/compare_with_kas.py","workers/pipeline/g2p.py","workers/pipeline/requirements.txt","workers/pipeline/run_pipeline.py","workers/separation/README.md","workers/separation/run_separation.py","workers/sofa-acoustic/README.md","workers/sofa-acoustic/requirements.txt","workers/sofa-acoustic/run_sofa_acoustic.py","workers/sofa-acoustic/vendor/sofa/.gitignore","workers/sofa-acoustic/vendor/sofa/LICENSE","workers/sofa-acoustic/vendor/sofa/README.MD","workers/sofa-acoustic/vendor/sofa/README_zh.MD","workers/sofa-acoustic/vendor/sofa/binarize.py","workers/sofa-acoustic/vendor/sofa/ckpt/.gitkeep","workers/sofa-acoustic/vendor/sofa/configs/binarize_config.yaml","workers/sofa-acoustic/vendor/sofa/configs/train_config.yaml","workers/sofa-acoustic/vendor/sofa/data/.gitkeep","workers/sofa-acoustic/vendor/sofa/data/binary/.gitkeep","workers/sofa-acoustic/vendor/sofa/dataset.py","workers/sofa-acoustic/vendor/sofa/dictionary/.gitkeep","workers/sofa-acoustic/vendor/sofa/dictionary/opencpop-extension.txt","workers/sofa-acoustic/vendor/sofa/evaluate.py","workers/sofa-acoustic/vendor/sofa/example.png","workers/sofa-acoustic/vendor/sofa/infer.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/base_detector.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/loudnesss_pectralcentroid_detector.py","workers/sofa-acoustic/vendor/sofa/modules/AP_detector/none_detector.py","workers/sofa-acoustic/vendor/sofa/modules/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/base_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/dictionary_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/none_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/phoneme_g2p.py","workers/sofa-acoustic/vendor/sofa/modules/g2p/readme_g2p.md","workers/sofa-acoustic/vendor/sofa/modules/g2p/readme_g2p_zh.md","workers/sofa-acoustic/vendor/sofa/modules/layer/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/activation/GLU.py","workers/sofa-acoustic/vendor/sofa/modules/layer/activation/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/backbone/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/backbone/unet.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/attention.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/conformer.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/convolution.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/func_module.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/residual.py","workers/sofa-acoustic/vendor/sofa/modules/layer/block/resnet_block.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/base.py","workers/sofa-acoustic/vendor/sofa/modules/layer/scaling/stride_conv.py","workers/sofa-acoustic/vendor/sofa/modules/loss/BinaryEMDLoss.py","workers/sofa-acoustic/vendor/sofa/modules/loss/GHMLoss.py","workers/sofa-acoustic/vendor/sofa/modules/loss/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/constants.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/deepunet.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/inference.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/model.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/seq.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/spec.py","workers/sofa-acoustic/vendor/sofa/modules/rmvpe/utils.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/gaussian_ramp_up_scheduler.py","workers/sofa-acoustic/vendor/sofa/modules/scheduler/none_scheduler.py","workers/sofa-acoustic/vendor/sofa/modules/task/forced_alignment.py","workers/sofa-acoustic/vendor/sofa/modules/utils/__init__.py","workers/sofa-acoustic/vendor/sofa/modules/utils/export_tool.py","workers/sofa-acoustic/vendor/sofa/modules/utils/get_melspec.py","workers/sofa-acoustic/vendor/sofa/modules/utils/label.py","workers/sofa-acoustic/vendor/sofa/modules/utils/load_wav.py","workers/sofa-acoustic/vendor/sofa/modules/utils/metrics.py","workers/sofa-acoustic/vendor/sofa/modules/utils/metrics_test.py","workers/sofa-acoustic/vendor/sofa/modules/utils/plot.py","workers/sofa-acoustic/vendor/sofa/modules/utils/post_processing.py","workers/sofa-acoustic/vendor/sofa/requirements.txt","workers/sofa-acoustic/vendor/sofa/segments/.gitkeep","workers/sofa-acoustic/vendor/sofa/train.py","workers/sofa-verifier/README.md","workers/sofa-verifier/scripts/run_sofa_align.py","workers/stars/README.md","workers/stars/g2p_stars.py","workers/stars/requirements_stars.txt","workers/stars/rmvpe/LICENSE-upstream-STARS.txt","workers/stars/rmvpe/__init__.py","workers/stars/rmvpe/constants.py","workers/stars/rmvpe/deepunet.py","workers/stars/rmvpe/mel.py","workers/stars/rmvpe/model.py","workers/stars/rmvpe/seq.py","workers/stars/rmvpe/spec.py","workers/stars/rmvpe/utils.py","workers/stars/run_stars.py","workers/stars/stars_align.py","workers/stars/vendor_stars/LICENSE-upstream-STARS.txt","workers/stars/vendor_stars/_VENDOR_NOTE.md","workers/stars/vendor_stars/_reference/inference_stars.py","workers/stars/vendor_stars/_reference/mixedtext2phoneme.py","workers/stars/vendor_stars/_reference/process_ph.py","workers/stars/vendor_stars/chinese_and_english_phone_set.json","workers/stars/vendor_stars/chinese_phone_set.json","workers/stars/vendor_stars/configs/base.yaml","workers/stars/vendor_stars/configs/stars_bilingual.yaml","workers/stars/vendor_stars/configs/stars_chinese.yaml","workers/stars/vendor_stars/modules/__init__.py","workers/stars/vendor_stars/modules/commons/__init__.py","workers/stars/vendor_stars/modules/commons/conformer/__init__.py","workers/stars/vendor_stars/modules/commons/conformer/conformer.py","workers/stars/vendor_stars/modules/commons/conformer/espnet_positional_embedding.py","workers/stars/vendor_stars/modules/commons/conformer/espnet_transformer_attn.py","workers/stars/vendor_stars/modules/commons/conformer/layers.py","workers/stars/vendor_stars/modules/commons/conv.py","workers/stars/vendor_stars/modules/commons/layers.py","workers/stars/vendor_stars/modules/commons/transformer.py","workers/stars/vendor_stars/modules/pe/__init__.py","workers/stars/vendor_stars/modules/pe/rmvpe/__init__.py","workers/stars/vendor_stars/modules/pe/rmvpe/constants.py","workers/stars/vendor_stars/modules/pe/rmvpe/deepunet.py","workers/stars/vendor_stars/modules/pe/rmvpe/extractor.py","workers/stars/vendor_stars/modules/pe/rmvpe/inference.py","workers/stars/vendor_stars/modules/pe/rmvpe/model.py","workers/stars/vendor_stars/modules/pe/rmvpe/seq.py","workers/stars/vendor_stars/modules/pe/rmvpe/spec.py","workers/stars/vendor_stars/modules/pe/rmvpe/utils.py","workers/stars/vendor_stars/modules/stars/__init__.py","workers/stars/vendor_stars/modules/stars/stars.py","workers/stars/vendor_stars/modules/stars/unet.py","workers/stars/vendor_stars/modules/stars/utils.py","workers/stars/vendor_stars/tasks/__init__.py","workers/stars/vendor_stars/tasks/stars/__init__.py","workers/stars/vendor_stars/tasks/stars/dataset.py","workers/stars/vendor_stars/tasks/stars/utils.py","workers/stars/vendor_stars/utils/__init__.py","workers/stars/vendor_stars/utils/audio/__init__.py","workers/stars/vendor_stars/utils/audio/align.py","workers/stars/vendor_stars/utils/audio/mel.py","workers/stars/vendor_stars/utils/audio/pitch_utils.py","workers/stars/vendor_stars/utils/commons/__init__.py","workers/stars/vendor_stars/utils/commons/ckpt_utils.py","workers/stars/vendor_stars/utils/commons/dataset_utils.py","workers/stars/vendor_stars/utils/commons/gpu_mem_track.py","workers/stars/vendor_stars/utils/commons/hparams.py","workers/stars/vendor_stars/utils/commons/indexed_datasets.py","workers/stars/vendor_stars/utils/commons/signal.py","workers/stars/vendor_stars/utils/nn/__init__.py","workers/stars/vendor_stars/utils/nn/seq_utils.py","workers/stars/vendor_stars/utils/os_utils.py","workers/stars/vendor_stars/utils/text/__init__.py","workers/stars/vendor_stars/utils/text/text_encoder.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json","曲库/library.latest.json"],"removed":[],"modified":[]},"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":27,"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-14T12:26:15+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1784003176
|
1784003267
|
0
|
1784003175
|
1784003269
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23454
|
初始提交:SongFormer 结构时间歌词行(治理底座 + 双阶段流水线 + 复核工作台)
|
67
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","message":"初始提交:SongFormer 结构时间歌词行(治理底座 + 双阶段流水线 + 复核工作台)\n\n- 基础框架迁移(git archive 受管文件 + 身份改造 + 三级门禁,静态 pnpm check 全绿)\n- phase1 结构→歌词行全局单调 DP 对齐:以官方歌词为准强制覆盖、非演唱结构防幻听先验、\n 六语种语音层(拼音/jyutping/kakasi读音/jamo/metaphone/拉丁)、多块投票定语言、\n 异体字读音等价;phase2 MMS 三句滑窗 + VAD 尾校验产出行/字级时间\n- 四模型本地部署(SongFormer/Qwen3-ASR-1.7B/mms-fa/HTDemucs,权重不进 git,\n manifest SHA256 + check:model-assets 门禁 + smoke 证据)\n- Web 复核工作台 /review:载入/一键执行/重跑、试听/连续播放/逐字对比、问题行过滤、\n 语言徽标、错配警示;run_song 一键编排(缺歌声自动分离,产物落原目录复用)\n- pytest 48/48;真歌验证:晴天×3路径、后来、日语/粤语曲目(精度未做人工金标验收)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-27T23:15:09-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/review/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","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/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.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","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-model-assets.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","services/structure_lyrics/README.md","services/structure_lyrics/examples/demo_song/asr.json","services/structure_lyrics/examples/demo_song/lyrics.txt","services/structure_lyrics/examples/demo_song/structure.json","services/structure_lyrics/phase1/__init__.py","services/structure_lyrics/phase1/align.py","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase1/lyrics.py","services/structure_lyrics/phase1/models.py","services/structure_lyrics/phase1/pipeline.py","services/structure_lyrics/phase1/similarity.py","services/structure_lyrics/phase1/structure.py","services/structure_lyrics/phase1/textnorm.py","services/structure_lyrics/phase2/__init__.py","services/structure_lyrics/phase2/audio_io.py","services/structure_lyrics/phase2/backend.py","services/structure_lyrics/phase2/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_align.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_multilang.py","services/structure_lyrics/tests/test_phase2.py","tsconfig.base.json","turbo.json","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/README.md","workers/mms-fa/align_tasks.py","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/qwen3-asr/README.md","workers/qwen3-asr/requirements_qwen3_asr.txt","workers/qwen3-asr/run_qwen3_asr.py","workers/qwen3-asr/testdata/asr_zh.txt","workers/qwen3-asr/testdata/asr_zh.wav","workers/qwen3-asr/vendor/qwen3_asr/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/boundary.py","workers/qwen3-asr/vendor/qwen3_asr/align/chars.py","workers/qwen3-asr/vendor/qwen3_asr/align/monotonic.py","workers/qwen3-asr/vendor/qwen3_asr/align/observation.py","workers/qwen3-asr/vendor/qwen3_asr/align/pcenter.py","workers/qwen3-asr/vendor/qwen3_asr/align/pipeline.py","workers/qwen3-asr/vendor/qwen3_asr/align/progress.py","workers/qwen3-asr/vendor/qwen3_asr/align/tail.py","workers/qwen3-asr/vendor/qwen3_asr/align/text.py","workers/qwen3-asr/vendor/qwen3_asr/align/windows.py","workers/qwen3-asr/vendor/qwen3_asr/align/wordless.py","workers/qwen3-asr/vendor/qwen3_asr/align_cli.py","workers/qwen3-asr/vendor/qwen3_asr/audio.py","workers/qwen3-asr/vendor/qwen3_asr/cache.py","workers/qwen3-asr/vendor/qwen3_asr/cli.py","workers/qwen3-asr/vendor/qwen3_asr/config.py","workers/qwen3-asr/vendor/qwen3_asr/diagnostics_cli.py","workers/qwen3-asr/vendor/qwen3_asr/engine.py","workers/qwen3-asr/vendor/qwen3_asr/forced_aligner.py","workers/qwen3-asr/vendor/qwen3_asr/service.py","workers/qwen3-asr/vendor/qwen3_asr/stream.py","workers/qwen3-asr/vendor/qwen3_asr/stream_cli.py","workers/qwen3-asr/vendor/qwen3_asr/structure.py","workers/qwen3-asr/vendor/qwen3_asr/textutil.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review_cli.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score_cli.py","workers/qwen3-asr/vendor/qwen3_asr/voice_diagnostics.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","message":"初始提交:SongFormer 结构时间歌词行(治理底座 + 双阶段流水线 + 复核工作台)\n\n- 基础框架迁移(git archive 受管文件 + 身份改造 + 三级门禁,静态 pnpm check 全绿)\n- phase1 结构→歌词行全局单调 DP 对齐:以官方歌词为准强制覆盖、非演唱结构防幻听先验、\n 六语种语音层(拼音/jyutping/kakasi读音/jamo/metaphone/拉丁)、多块投票定语言、\n 异体字读音等价;phase2 MMS 三句滑窗 + VAD 尾校验产出行/字级时间\n- 四模型本地部署(SongFormer/Qwen3-ASR-1.7B/mms-fa/HTDemucs,权重不进 git,\n manifest SHA256 + check:model-assets 门禁 + smoke 证据)\n- Web 复核工作台 /review:载入/一键执行/重跑、试听/连续播放/逐字对比、问题行过滤、\n 语言徽标、错配警示;run_song 一键编排(缺歌声自动分离,产物落原目录复用)\n- pytest 48/48;真歌验证:晴天×3路径、后来、日语/粤语曲目(精度未做人工金标验收)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-27T23:15:09-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/review/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","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/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.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","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-model-assets.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","services/structure_lyrics/README.md","services/structure_lyrics/examples/demo_song/asr.json","services/structure_lyrics/examples/demo_song/lyrics.txt","services/structure_lyrics/examples/demo_song/structure.json","services/structure_lyrics/phase1/__init__.py","services/structure_lyrics/phase1/align.py","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase1/lyrics.py","services/structure_lyrics/phase1/models.py","services/structure_lyrics/phase1/pipeline.py","services/structure_lyrics/phase1/similarity.py","services/structure_lyrics/phase1/structure.py","services/structure_lyrics/phase1/textnorm.py","services/structure_lyrics/phase2/__init__.py","services/structure_lyrics/phase2/audio_io.py","services/structure_lyrics/phase2/backend.py","services/structure_lyrics/phase2/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_align.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_multilang.py","services/structure_lyrics/tests/test_phase2.py","tsconfig.base.json","turbo.json","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/README.md","workers/mms-fa/align_tasks.py","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/qwen3-asr/README.md","workers/qwen3-asr/requirements_qwen3_asr.txt","workers/qwen3-asr/run_qwen3_asr.py","workers/qwen3-asr/testdata/asr_zh.txt","workers/qwen3-asr/testdata/asr_zh.wav","workers/qwen3-asr/vendor/qwen3_asr/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/boundary.py","workers/qwen3-asr/vendor/qwen3_asr/align/chars.py","workers/qwen3-asr/vendor/qwen3_asr/align/monotonic.py","workers/qwen3-asr/vendor/qwen3_asr/align/observation.py","workers/qwen3-asr/vendor/qwen3_asr/align/pcenter.py","workers/qwen3-asr/vendor/qwen3_asr/align/pipeline.py","workers/qwen3-asr/vendor/qwen3_asr/align/progress.py","workers/qwen3-asr/vendor/qwen3_asr/align/tail.py","workers/qwen3-asr/vendor/qwen3_asr/align/text.py","workers/qwen3-asr/vendor/qwen3_asr/align/windows.py","workers/qwen3-asr/vendor/qwen3_asr/align/wordless.py","workers/qwen3-asr/vendor/qwen3_asr/align_cli.py","workers/qwen3-asr/vendor/qwen3_asr/audio.py","workers/qwen3-asr/vendor/qwen3_asr/cache.py","workers/qwen3-asr/vendor/qwen3_asr/cli.py","workers/qwen3-asr/vendor/qwen3_asr/config.py","workers/qwen3-asr/vendor/qwen3_asr/diagnostics_cli.py","workers/qwen3-asr/vendor/qwen3_asr/engine.py","workers/qwen3-asr/vendor/qwen3_asr/forced_aligner.py","workers/qwen3-asr/vendor/qwen3_asr/service.py","workers/qwen3-asr/vendor/qwen3_asr/stream.py","workers/qwen3-asr/vendor/qwen3_asr/stream_cli.py","workers/qwen3-asr/vendor/qwen3_asr/structure.py","workers/qwen3-asr/vendor/qwen3_asr/textutil.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review_cli.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score_cli.py","workers/qwen3-asr/vendor/qwen3_asr/voice_diagnostics.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json"],"removed":[],"modified":[]},"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":true,"fork":false,"template":false,"mirror":false,"size":27,"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":1,"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-07-28T14:20:17+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
|
1785219618
|
1785219660
|
0
|
1785219617
|
1785219660
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23420
|
分析报告:对齐残余不精准根因归因(误差分解+三方对照,晴天)
|
60
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
05d910e9c48177e24723827b424c2f8919bde17d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"13be1d708476428e5788727ffd735f54b027cb9f","after":"05d910e9c48177e24723827b424c2f8919bde17d","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/13be1d708476428e5788727ffd735f54b027cb9f...05d910e9c48177e24723827b424c2f8919bde17d","commits":[{"id":"05d910e9c48177e24723827b424c2f8919bde17d","message":"分析报告:对齐残余不精准根因归因(误差分解+三方对照,晴天)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/05d910e9c48177e24723827b424c2f8919bde17d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:16:23-07:00","added":["reports/model-evidence/alignment-imprecision-root-cause.latest.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"05d910e9c48177e24723827b424c2f8919bde17d","message":"分析报告:对齐残余不精准根因归因(误差分解+三方对照,晴天)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/05d910e9c48177e24723827b424c2f8919bde17d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T00:16:23-07:00","added":["reports/model-evidence/alignment-imprecision-root-cause.latest.json"],"removed":[],"modified":[]},"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":4051,"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-14T15:12: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
|
1784013389
|
1784013443
|
0
|
1784013389
|
1784013443
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23408
|
兼容 AI 助手空会话 ID
|
51
|
5
|
ci.yml
|
3
|
8
|
0
|
refs/heads/main
|
49de0c2d382fe761e459574e38b67a4d09f4604d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ad491b380b573d1f4389aa0e3a1aae0eceb467d8","after":"49de0c2d382fe761e459574e38b67a4d09f4604d","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ad491b380b573d1f4389aa0e3a1aae0eceb467d8...49de0c2d382fe761e459574e38b67a4d09f4604d","commits":[{"id":"49de0c2d382fe761e459574e38b67a4d09f4604d","message":"兼容 AI 助手空会话 ID\n\n允许 content/assistant 的 conversationId 为 null,并在校验后转为 undefined,避免首次对话请求被参数校验拒绝。\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/49de0c2d382fe761e459574e38b67a4d09f4604d","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-09T13:59:24+08:00","added":[],"removed":[],"modified":["server/src/modules/content/routes.ts"]}],"total_commits":0,"head_commit":{"id":"49de0c2d382fe761e459574e38b67a4d09f4604d","message":"兼容 AI 助手空会话 ID\n\n允许 content/assistant 的 conversationId 为 null,并在校验后转为 undefined,避免首次对话请求被参数校验拒绝。\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/49de0c2d382fe761e459574e38b67a4d09f4604d","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-09T13:59:24+08:00","added":[],"removed":[],"modified":["server/src/modules/content/routes.ts"]},"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":true,"fork":false,"template":false,"mirror":false,"size":6625,"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-02T18:12: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":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
|
1783576800
|
1783576912
|
0
|
1783576799
|
1783576912
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23472
|
修复评价截图 OCR 兼容性
|
51
|
5
|
ci.yml
|
10
|
8
|
0
|
refs/heads/main
|
ead57a81e98d7f55797e6963b61e4847d9d9a96d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"092acb7eb779cf4d784a4aec60f834e797be7e46","after":"ead57a81e98d7f55797e6963b61e4847d9d9a96d","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/092acb7eb779cf4d784a4aec60f834e797be7e46...ead57a81e98d7f55797e6963b61e4847d9d9a96d","commits":[{"id":"ead57a81e98d7f55797e6963b61e4847d9d9a96d","message":"修复评价截图 OCR 兼容性\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ead57a81e98d7f55797e6963b61e4847d9d9a96d","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-31T16:21:17+08:00","added":[],"removed":[],"modified":["server/src/adapters/ocr/parse.ts","server/src/adapters/ocr/vision.ts","server/test/ocr-parse.test.ts","server/test/ocr-provider.unit.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/scripts/test-static.mjs"]}],"total_commits":0,"head_commit":{"id":"ead57a81e98d7f55797e6963b61e4847d9d9a96d","message":"修复评价截图 OCR 兼容性\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ead57a81e98d7f55797e6963b61e4847d9d9a96d","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-31T16:21:17+08:00","added":[],"removed":[],"modified":["server/src/adapters/ocr/parse.ts","server/src/adapters/ocr/vision.ts","server/test/ocr-parse.test.ts","server/test/ocr-provider.unit.test.ts","团购本地生活AI运营App/api.js","团购本地生活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":87461,"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-31T15:46:25+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
|
1785486106
|
1785486233
|
0
|
1785486106
|
1785486233
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23471
|
修复局域网访问后端地址解析
|
51
|
5
|
ci.yml
|
9
|
8
|
0
|
refs/heads/main
|
092acb7eb779cf4d784a4aec60f834e797be7e46
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bef7116148fe61f8cba8207bd921d296cb01883d","after":"092acb7eb779cf4d784a4aec60f834e797be7e46","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/bef7116148fe61f8cba8207bd921d296cb01883d...092acb7eb779cf4d784a4aec60f834e797be7e46","commits":[{"id":"092acb7eb779cf4d784a4aec60f834e797be7e46","message":"修复局域网访问后端地址解析\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/092acb7eb779cf4d784a4aec60f834e797be7e46","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-31T15:45:54+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/scripts/test-static.mjs"]}],"total_commits":0,"head_commit":{"id":"092acb7eb779cf4d784a4aec60f834e797be7e46","message":"修复局域网访问后端地址解析\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/092acb7eb779cf4d784a4aec60f834e797be7e46","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-31T15:45:54+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/index.html","团购本地生活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":87443,"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-31T15:27: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":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
|
1785483987
|
1785484110
|
0
|
1785483985
|
1785484110
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23760
|
test: verify merged branches across runtime media test: verify merged branches across runtime media and browser flows...
|
57
|
5
|
governance.yml
|
130
|
5
|
0
|
refs/heads/main
|
79ba5abcdcb303d0b86eb064edbf76b150453003
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3cde0f6825c3c16e3bd1ece29001d8efce2ada64","after":"79ba5abcdcb303d0b86eb064edbf76b150453003","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/3cde0f6825c3c16e3bd1ece29001d8efce2ada64...79ba5abcdcb303d0b86eb064edbf76b150453003","commits":[{"id":"79ba5abcdcb303d0b86eb064edbf76b150453003","message":"test: verify merged branches across runtime media and browser flows\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/79ba5abcdcb303d0b86eb064edbf76b150453003","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-08T22:49:06-07:00","added":["docs/governance/log/2026-09-09-all-branches.md","reports/all-branches-20260909/README.md","reports/all-branches-20260909/branches-before.json","reports/all-branches-20260909/composition-browser.json","reports/all-branches-20260909/range-api.json","reports/all-branches-20260909/summary.json","reports/all-branches-20260909/temporal-fixture.json"],"removed":[],"modified":["CLAUDE.md","docs/product/pro-video-platform-progress.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/video-composition-canvas-2026-09-08/README.md","reports/video-framing-2026-09-08/README.md","reports/video-keyframes-2026-09-08/README.md","reports/video-retiming-2026-09-08/README.md"]},{"id":"6e7d4bacd7722b025cb5cf80c50b5aa651fdbf6e","message":"merge: integrate all remaining video timeline branch commits\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6e7d4bacd7722b025cb5cf80c50b5aa651fdbf6e","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-08T22:49:06-07:00","added":["apps/web/src/components/material-factory/video-edit/CompositionCanvas.tsx","apps/web/src/components/material-factory/video-edit/FramingEditor.tsx","apps/web/src/components/material-factory/video-edit/composition-gesture.ts","apps/web/src/components/material-factory/video-edit/composition-paint.ts","docs/adr/0019-video-clip-framing.md","docs/adr/0020-video-constant-retiming.md","docs/adr/0021-video-source-clock-keyframes.md","docs/adr/0022-video-interactive-composition.md","docs/governance/log/2026-09-08-video-composition-canvas.md","docs/governance/log/2026-09-08-video-framing.md","docs/governance/log/2026-09-08-video-keyframes.md","docs/governance/log/2026-09-08-video-retiming.md","packages/contracts/src/video-edit-framing.test.ts","packages/contracts/src/video-edit-framing.ts","packages/contracts/src/video-edit-motion.test.ts","packages/contracts/src/video-edit-motion.ts","packages/contracts/src/video-edit-retime.test.ts","packages/video-edit/src/framing.test.ts","packages/video-edit/src/framing.ts","packages/video-edit/src/motion.test.ts","packages/video-edit/src/motion.ts","packages/video-edit/src/retime.test.ts","packages/video-edit/src/retime.ts","reports/video-composition-canvas-2026-09-08/README.md","reports/video-composition-canvas-2026-09-08/coverage-review.md","reports/video-composition-canvas-2026-09-08/temporal-fixture.json","reports/video-composition-canvas-2026-09-08/validation.json","reports/video-framing-2026-09-08/README.md","reports/video-framing-2026-09-08/audit-attempts.json","reports/video-framing-2026-09-08/browser-framing.json","reports/video-framing-2026-09-08/browser-integrated.json","reports/video-framing-2026-09-08/browser-mobile.json","reports/video-framing-2026-09-08/clamd-probe.json","reports/video-framing-2026-09-08/gate-results.jsonl","reports/video-framing-2026-09-08/pre-integration-validation.json","reports/video-framing-2026-09-08/range-api.json","reports/video-framing-2026-09-08/specialty-results.json","reports/video-framing-2026-09-08/subtitle-api.json","reports/video-framing-2026-09-08/validation.json","reports/video-keyframes-2026-09-08/README.md","reports/video-keyframes-2026-09-08/browser.json","reports/video-keyframes-2026-09-08/gate-results.jsonl","reports/video-keyframes-2026-09-08/range-api.json","reports/video-keyframes-2026-09-08/screenshot-manifest.json","reports/video-keyframes-2026-09-08/validation.json","reports/video-retiming-2026-09-08/README.md","reports/video-retiming-2026-09-08/browser.json","reports/video-retiming-2026-09-08/gate-results.jsonl","reports/video-retiming-2026-09-08/range-api.json","reports/video-retiming-2026-09-08/screenshot-manifest.json","reports/video-retiming-2026-09-08/validation.json","scripts/check-video-composition-ui.cjs","scripts/check-video-frame-fixture.cjs","scripts/lib/video-frame-fixture.cjs","scripts/lib/video-frame-fixture.test.mjs","scripts/video-composition-gesture.test.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/video-edit/EditTimeline.tsx","apps/web/src/components/material-factory/video-edit/PromoteVideoEditButton.tsx","apps/web/src/components/material-factory/video-edit/SubtitleBurnPanel.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/timeline-position.ts","apps/web/src/components/material-factory/video-edit/video-edit.module.css","docs/adr/README.md","docs/domain/owner-matrix.md","docs/product/pro-video-platform-progress.md","package.json","packages/contracts/src/index.ts","packages/contracts/src/video-edit-range.ts","packages/contracts/src/video-edit-timeline.ts","packages/contracts/src/video-edit.ts","packages/video-edit/src/media.ts","packages/video-edit/src/planner.ts","packages/video-edit/src/range-preview.test.ts","packages/video-edit/src/range-preview.ts","packages/video-edit/src/subtitle-preview.ts","packages/video-edit/src/worker.ts","scripts/check-video-range-preview.cjs","scripts/video-edit-timeline.test.mjs"]},{"id":"f851b46ceba3ad5487b18f779b5ad06dc863cd0c","message":"feat(video): add interactive composition canvas candidate\n\nAdd source-frame composition gestures, shared export geometry and temporal frame fixtures. Preserve one-step undo and version-change cancellation.\n\nValidation: pnpm check, six focused tests and all 75 encoded fixture frames passed. Current-source heavy gates and strengthened browser frame checks remain pending; this is a user-requested candidate upload, not a production release.\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f851b46ceba3ad5487b18f779b5ad06dc863cd0c","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-08T22:11:39-07:00","added":["apps/web/src/components/material-factory/video-edit/CompositionCanvas.tsx","apps/web/src/components/material-factory/video-edit/composition-gesture.ts","apps/web/src/components/material-factory/video-edit/composition-paint.ts","docs/adr/0022-video-interactive-composition.md","docs/governance/log/2026-09-08-video-composition-canvas.md","reports/video-composition-canvas-2026-09-08/README.md","reports/video-composition-canvas-2026-09-08/coverage-review.md","reports/video-composition-canvas-2026-09-08/temporal-fixture.json","reports/video-composition-canvas-2026-09-08/validation.json","scripts/check-video-composition-ui.cjs","scripts/check-video-frame-fixture.cjs","scripts/lib/video-frame-fixture.cjs","scripts/lib/video-frame-fixture.test.mjs","scripts/video-composition-gesture.test.mjs"],"removed":[],"modified":["apps/web/src/components/material-factory/video-edit/FramingEditor.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/video-edit.module.css","docs/adr/README.md","docs/domain/owner-matrix.md","docs/product/pro-video-platform-progress.md","package.json","packages/contracts/src/video-edit-motion.ts","packages/video-edit/src/motion.ts","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"e7aa92db95b85e3d8eeaf8bc238f942db6cb261f","message":"merge: integrate deployed admin brand management into video candidate\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/e7aa92db95b85e3d8eeaf8bc238f942db6cb261f","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-08T20:56:52-07:00","added":["apps/web/src/app/admin/brands/page.tsx","apps/web/src/components/admin/BrandsStudio.tsx","docs/governance/log/2026-09-08-admin-brands.md","docs/releases/2026-09-08-admin-brands1.md","reports/admin-brands-2026-09-08/README.md","reports/admin-brands-2026-09-08/admin-brands.desktop.png","reports/admin-brands-2026-09-08/admin-brands.mobile.png","reports/admin-brands-2026-09-08/browser-verification.json","reports/admin-brands-2026-09-08/deployment.json","reports/admin-brands-2026-09-08/post-deployment-smoke.json","reports/admin-brands-2026-09-08/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/admin/AdminShell.tsx","apps/web/src/components/admin/ModelConnectionsStudio.tsx","docs/design/platform-admin.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/lib/prd-ui-acceptance.mjs"]},{"id":"ac6493a9b8b714bba5e8cb54be76ee8f441bdaac","message":"merge: retain keyframe validation with current release records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ac6493a9b8b714bba5e8cb54be76ee8f441bdaac","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-08T20:39:44-07:00","added":["docs/releases/2026-09-08-cost-backfill1.md"],"removed":[],"modified":["docs/adr/README.md","docs/governance/log/2026-09-08-model-cost-backfill.md","docs/governance/log/2026-09-08-video-keyframes.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-keyframes-2026-09-08/gate-results.jsonl","reports/video-keyframes-2026-09-08/validation.json"]}],"total_commits":0,"head_commit":{"id":"79ba5abcdcb303d0b86eb064edbf76b150453003","message":"test: verify merged branches across runtime media and browser flows\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/79ba5abcdcb303d0b86eb064edbf76b150453003","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-08T22:49:06-07:00","added":["docs/governance/log/2026-09-09-all-branches.md","reports/all-branches-20260909/README.md","reports/all-branches-20260909/branches-before.json","reports/all-branches-20260909/composition-browser.json","reports/all-branches-20260909/range-api.json","reports/all-branches-20260909/summary.json","reports/all-branches-20260909/temporal-fixture.json"],"removed":[],"modified":["CLAUDE.md","docs/product/pro-video-platform-progress.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/video-composition-canvas-2026-09-08/README.md","reports/video-framing-2026-09-08/README.md","reports/video-keyframes-2026-09-08/README.md","reports/video-retiming-2026-09-08/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":769633,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T13:25: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
|
4
|
1788932976
|
1788933017
|
0
|
1788932976
|
1788933017
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23768
|
test: verify integrated image creation release
|
57
|
5
|
governance.yml
|
138
|
5
|
0
|
refs/heads/main
|
34295adabb49f7dbcb49167c8b073c5ca740b44c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8db32c39012b14d88ee67fcc92af86b6e0d58828","after":"34295adabb49f7dbcb49167c8b073c5ca740b44c","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/8db32c39012b14d88ee67fcc92af86b6e0d58828...34295adabb49f7dbcb49167c8b073c5ca740b44c","commits":[{"id":"34295adabb49f7dbcb49167c8b073c5ca740b44c","message":"test: verify integrated image creation release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/34295adabb49f7dbcb49167c8b073c5ca740b44c","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-09T02:43:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-image-creation-uiux.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-uiux-20260909/README.md","reports/image-creation-uiux-20260909/summary.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"ca7b1845bfcb04a9f37830523168ea1d59d128eb","message":"Merge branch 'main' into feat/image-creation-uiux\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ca7b1845bfcb04a9f37830523168ea1d59d128eb","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-09T02:40:05-07:00","added":["reports/haizan-rename-20260909/README.md","reports/haizan-rename-20260909/dependency-audit.latest.json","reports/haizan-rename-20260909/inference-acceptance.latest.json","reports/haizan-rename-20260909/production-acceptance.latest.json","reports/haizan-rename-20260909/public-file-acceptance.latest.json","reports/haizan-rename-20260909/runtime-acceptance.latest.json","reports/haizan-rename-20260909/script-acceptance.latest.json","reports/haizan-rename-20260909/summary.json","reports/haizan-rename-20260909/ui-acceptance.latest.json","reports/storyboard-draft-20260909/validation.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-draft-model.md","reports/storyboard-draft-20260909/README.md"]},{"id":"870f6420696ed36501f078acbfeb8bbca756ed50","message":"docs(brand): record validated haizan rename\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/870f6420696ed36501f078acbfeb8bbca756ed50","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-09T02:39:37-07:00","added":["reports/haizan-rename-20260909/README.md","reports/haizan-rename-20260909/dependency-audit.latest.json","reports/haizan-rename-20260909/inference-acceptance.latest.json","reports/haizan-rename-20260909/production-acceptance.latest.json","reports/haizan-rename-20260909/public-file-acceptance.latest.json","reports/haizan-rename-20260909/runtime-acceptance.latest.json","reports/haizan-rename-20260909/script-acceptance.latest.json","reports/haizan-rename-20260909/summary.json","reports/haizan-rename-20260909/ui-acceptance.latest.json"],"removed":[],"modified":[]},{"id":"1a97dd5b931127d085239f0e18d0c47f2b02d0fe","message":"Merge branch 'main' into feat/image-creation-uiux\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1a97dd5b931127d085239f0e18d0c47f2b02d0fe","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-09T02:34:48-07:00","added":["apps/api-fastify/test/storyboard-ai-draft-model.integration.test.ts","apps/api-nestjs/test/storyboard-ai-draft-model.integration.test.ts","docs/governance/log/2026-09-09-storyboard-draft-model.md","reports/storyboard-draft-20260909/README.md","嗨赞造意的品牌颜色.md"],"removed":["嗨创造意的品牌颜色.md"],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/web/e2e/README.md","apps/web/e2e/specs/landing.spec.ts","apps/web/playwright.config.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/lib/product-brand.ts","docs/README.md","docs/domain/material-production-blueprint.md","docs/product/advanced-image-skills.md","docs/product/brand-identity.md","docs/product/business-blueprint-2026-09-05.md","docs/product/controlled-ai-material-factory.md","docs/product/creative-pipeline-design.md","docs/product/creative-workflow-analysis.md","docs/product/platform-module-map.md","docs/product/product-experience-blueprint.md","packages/contracts/src/material-brand.test.ts","packages/contracts/src/sidecar-error.test.ts","packages/contracts/src/sidecar-error.ts","packages/contracts/src/storyboard-ai-draft.test.ts","packages/contracts/src/storyboard.ts","packages/public-file/README.md","product-website/README.md","product-website/app.js","product-website/index.html","scripts/check-pilot-infrastructure.mjs","scripts/check-startup-acceptance.mjs","scripts/check-ui-acceptance.mjs","services/model-sidecar/main.py","services/model-sidecar/test_deepseek.py","services/model-sidecar/test_llm_preflight.py"]},{"id":"fadea3969bfe197eb7ce5b9eca15cbdd4a535564","message":"test(web): record image creation acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/fadea3969bfe197eb7ce5b9eca15cbdd4a535564","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-09T02:34:32-07:00","added":["reports/image-creation-uiux-20260909/README.md","reports/image-creation-uiux-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-image-creation-uiux.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"34295adabb49f7dbcb49167c8b073c5ca740b44c","message":"test: verify integrated image creation release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/34295adabb49f7dbcb49167c8b073c5ca740b44c","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-09T02:43:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-image-creation-uiux.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-uiux-20260909/README.md","reports/image-creation-uiux-20260909/summary.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"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":770672,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T17:37:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788947009
|
1788947049
|
0
|
1788947008
|
1788947049
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23773
|
test: verify frozen joint release candidate
|
57
|
5
|
governance.yml
|
143
|
5
|
0
|
refs/heads/main
|
858f2508697b81fb010cf9ca06269932c5b59e9a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d4d9057079d720cc5e7aae9ee547b5ffdfd47c11","after":"858f2508697b81fb010cf9ca06269932c5b59e9a","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/d4d9057079d720cc5e7aae9ee547b5ffdfd47c11...858f2508697b81fb010cf9ca06269932c5b59e9a","commits":[{"id":"858f2508697b81fb010cf9ca06269932c5b59e9a","message":"test: verify frozen joint release candidate\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/858f2508697b81fb010cf9ca06269932c5b59e9a","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-09T03:10:02-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-project-history.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/project-history-20260909/README.md","reports/project-history-20260909/summary.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"11c042fd7ad2540ecbdc78a3c8a610786512d67b","message":"merge: freeze completed trend sources in joint release candidate\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/11c042fd7ad2540ecbdc78a3c8a610786512d67b","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-09T03:02:12-07:00","added":["apps/web/src/components/material-factory/industry-trends/TrendSources.tsx","docs/governance/log/2026-09-09-industry-trend-sources.md","packages/contracts/src/trend-connectors.ts","packages/industry-trends/src/source-http.ts","packages/industry-trends/src/sources.test.ts","packages/industry-trends/src/sources.ts","reports/industry-trend-sources-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/routes/industry-trends.ts","apps/api-fastify/test/industry-trends.integration.test.ts","apps/api-nestjs/src/creative-project/industry-trends.controller.ts","apps/api-nestjs/test/industry-trends.integration.test.ts","apps/web/src/components/material-factory/industry-trends/IndustryTrends.tsx","apps/web/src/components/material-factory/industry-trends/industry-trends.module.css","apps/web/src/lib/api.ts","docs/domain/owner-matrix.md","docs/governance/log/2026-09-09-project-history.md","docs/product/industry-trends.md","packages/contracts/src/index.ts","packages/contracts/src/industry-trends.ts","packages/industry-trends/src/index.test.ts","packages/industry-trends/src/index.ts"]},{"id":"c4ee51ed3e5a52e2c762c240f7613c8a3a7c5694","message":"merge: integrate completed template preview before history release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c4ee51ed3e5a52e2c762c240f7613c8a3a7c5694","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-09T02:59:59-07:00","added":["apps/web/src/components/material-factory/TemplatePreviewButton.tsx","docs/governance/log/2026-09-09-template-preview.md","docs/releases/2026-09-09-image-uiux1.md","reports/storyboard-draft-20260909/live-verification.json","reports/template-preview-20260909/README.md","reports/template-preview-20260909/summary.json","scripts/lib/template-preview-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/TemplateStudio.tsx","docs/deploy-vm.md","docs/governance/log/2026-09-09-image-creation-uiux.md","docs/governance/log/2026-09-09-project-history.md","docs/governance/log/2026-09-09-storyboard-draft-model.md","docs/releases/current.md","reports/haizan-rename-20260909/README.md","reports/image-creation-uiux-20260909/README.md","reports/image-creation-uiux-20260909/summary.json","reports/storyboard-draft-20260909/README.md","reports/storyboard-draft-20260909/validation.json","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs"]},{"id":"e7ce5ed5848cde4ecca69fbd0e7810c5447635c6","message":"fix: preserve manual provenance when correcting collected trends\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/e7ce5ed5848cde4ecca69fbd0e7810c5447635c6","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-09T02:59:34-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-09-industry-trend-sources.md","docs/product/industry-trends.md","packages/industry-trends/src/index.test.ts","packages/industry-trends/src/index.ts","reports/industry-trend-sources-20260909/README.md"]},{"id":"1bd8bb5790b05872b51fa0e5993d42d42e7cc782","message":"test: validate integrated project history visibility\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1bd8bb5790b05872b51fa0e5993d42d42e7cc782","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-09T02:58:31-07:00","added":["reports/project-history-20260909/README.md","reports/project-history-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-project-history.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"858f2508697b81fb010cf9ca06269932c5b59e9a","message":"test: verify frozen joint release candidate\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/858f2508697b81fb010cf9ca06269932c5b59e9a","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-09T03:10:02-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-project-history.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/project-history-20260909/README.md","reports/project-history-20260909/summary.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"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":771127,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T17:59: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
|
4
|
1788948621
|
1788948712
|
0
|
1788948621
|
1788948712
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23794
|
test: verify combined template master and image st test: verify combined template master and image style release...
|
57
|
5
|
governance.yml
|
164
|
5
|
0
|
refs/heads/main
|
a561550788227674837cb3738304f722c034785a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2af2a14c70c41fda3e2d492d31c54dd765c8b8de","after":"a561550788227674837cb3738304f722c034785a","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/2af2a14c70c41fda3e2d492d31c54dd765c8b8de...a561550788227674837cb3738304f722c034785a","commits":[{"id":"a561550788227674837cb3738304f722c034785a","message":"test: verify combined template master and image style release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a561550788227674837cb3738304f722c034785a","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-09T07:49:13-07:00","added":["reports/template-current-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/test/material-production-modes.integration.test.ts","docs/governance/log/2026-09-09-template-current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"a72b104c2c9655dba3ad8fe20f71bc1d6248b0e9","message":"Merge branch 'main' into feat/template-making-uiux\n\n# Conflicts:\n#\tCLAUDE.md\n#\treports/inference-acceptance.latest.json\n#\treports/production-acceptance.latest.json\n#\treports/public-file-acceptance.latest.json\n#\treports/runtime-acceptance.latest.json\n#\treports/script-acceptance.latest.json\n#\treports/sidecar-tests.latest.json\n#\treports/ui-acceptance.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a72b104c2c9655dba3ad8fe20f71bc1d6248b0e9","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-09T07:36:20-07:00","added":["docs/governance/log/2026-09-09-image-style.md","docs/releases/2026-09-09-style1.md","packages/contracts/src/image-visual-style.ts","reports/image-style-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/image-size.integration.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/image-size.integration.test.ts","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/brand.ts","docs/releases/current.md","packages/contracts/src/image-type-prompt.test.ts","packages/contracts/src/index.ts","packages/contracts/src/material.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/lib/image-creation-ui-acceptance.mjs"]},{"id":"4825b30909c987d841b72552e7b30b56d4d7ff3b","message":"fix(template): display each saved template master in canvas and preview\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4825b30909c987d841b72552e7b30b56d4d7ff3b","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-09T07:35:55-07:00","added":["apps/web/src/components/material-factory/template-master-source.ts","docs/governance/log/2026-09-09-template-current.md","reports/template-current-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/TemplateMakingCanvas.tsx","apps/web/src/components/material-factory/TemplatePreviewButton.tsx","reports/inference-acceptance.latest.json","reports/production-acceptance.latest.json","reports/public-file-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/ui-acceptance.latest.json","scripts/lib/template-types-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"a561550788227674837cb3738304f722c034785a","message":"test: verify combined template master and image style release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a561550788227674837cb3738304f722c034785a","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-09T07:49:13-07:00","added":["reports/template-current-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/test/material-production-modes.integration.test.ts","docs/governance/log/2026-09-09-template-current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"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":790332,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T22:30:55+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
|
1788965375
|
1788965466
|
0
|
1788965374
|
1788965466
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23798
|
test: re-verify the workbench UI/UX round together test: re-verify the workbench UI/UX round together with rate limiting...
|
57
|
5
|
governance.yml
|
168
|
5
|
0
|
refs/heads/main
|
8d57841881cc5270b1ef893be3ff0d5b9599cd20
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9c6389b174f411b411ccacd32f2d6816afeeb337","after":"8d57841881cc5270b1ef893be3ff0d5b9599cd20","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/9c6389b174f411b411ccacd32f2d6816afeeb337...8d57841881cc5270b1ef893be3ff0d5b9599cd20","commits":[{"id":"8d57841881cc5270b1ef893be3ff0d5b9599cd20","message":"test: re-verify the workbench UI/UX round together with rate limiting\n\nSeven gates and the dependency audit passed again on the tree that\nmerges main (rate-limit round, cc0ce5e4) into this branch, bound to\nsha256:1d2a755beec5a59f51b245d59adbc2ba16d2f6448882247e713eb237e991dd3d; pnpm check passes. Heavy baseline rows re-marked.\nEvidence: acceptance-artifacts/uiux-workbench-2026-09-09/ (round1/ holds\nthe pre-merge run).\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8d57841881cc5270b1ef893be3ff0d5b9599cd20","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-09T08:50:56-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"7ab708798635a9690f6f989f18c0cae1fb268e35","message":"Merge branch 'main' into feat/uiux-workbench-20260909\n\n# Conflicts:\n#\tCLAUDE.md\n#\treports/contract-consumers.latest.json\n#\treports/dependency-audit.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/inference-acceptance.latest.json\n#\treports/material-review-concurrency-guard.latest.json\n#\treports/migrations.latest.json\n#\treports/module-boundary.latest.json\n#\treports/naming.latest.json\n#\treports/order-concurrency-guard.latest.json\n#\treports/production-acceptance.latest.json\n#\treports/production-security.latest.json\n#\treports/public-file-acceptance.latest.json\n#\treports/public-file-integration.latest.json\n#\treports/runtime-acceptance.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/script-acceptance.latest.json\n#\treports/sidecar-tests.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/toolchain.latest.json\n#\treports/ui-acceptance.latest.json\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7ab708798635a9690f6f989f18c0cae1fb268e35","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-09T08:41:48-07:00","added":["apps/api-fastify/src/modules/rate-limit.ts","apps/api-fastify/src/plugins/rate-limit.ts","apps/api-fastify/test/rate-limit.test.ts","apps/api-nestjs/src/rate-limit/rate-limit.module.ts","apps/api-nestjs/src/rate-limit/rate-limit.service.ts","apps/api-nestjs/src/rate-limit/submission-rate-limit.guard.ts","apps/api-nestjs/test/rate-limit.test.ts","apps/web/src/lib/bff-rate-limit.test.mjs","apps/web/src/lib/bff-rate-limit.ts","apps/web/src/lib/server/rate-limit.ts","docs/governance/log/2026-09-09-rate-limit.md","packages/contracts/src/rate-limit-policy.test.ts","packages/contracts/src/rate-limit-policy.ts","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/director-workbench.desktop.png","reports/director-workbench.mobile.png","reports/image-creation-1135.png","reports/image-creation-1440.png","reports/image-creation-390.png","reports/image-creation-768.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-mobile-form.png","reports/image-edit-result.png","reports/rate-limit-2026-09-09/README.md","reports/rate-limit-2026-09-09/gate-results.round1.jsonl","reports/rate-limit-2026-09-09/gate-results.round2.jsonl","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-asset-dialog.mobile.png","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.first.png","reports/storyboard-frame-dialog.mobile.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-making.390.png","reports/template-making.768.png","reports/template-preview.edit.png","reports/template-preview.templates.png","reports/template-save-ready.APPLICATION.png","reports/template-save-ready.GENERAL.png","reports/template-save-ready.SCENE.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-saved-master.SCENE.png"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/routes/creative-project.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/src/routes/shijie.ts","apps/api-fastify/src/types.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/creative-project/creative-project.controller.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/shooting-script.controller.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/shijie/shijie.controller.ts","apps/web/src/app/api/[...path]/route.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/deploy-vm.md","packages/contracts/src/index.ts","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ui-failure.png","reports/ui-failure.txt","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png","scripts/check-production-security.mjs"]},{"id":"02b7a3da9c36632dd84fad950334446c74913b00","message":"Merge branch 'main' into feat/uiux-workbench-20260909\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/02b7a3da9c36632dd84fad950334446c74913b00","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-09T08:36:04-07:00","added":["docs/governance/log/2026-09-09-deep-analysis.md","reports/project-deep-analysis-2026-09-09.md","reports/project-deep-analysis-2026-09-09/README.md"],"removed":[],"modified":["CLAUDE.md","reports/project-deep-analysis.latest.md"]},{"id":"47ae7b7c711428134cc222f3544e4f59c936de4d","message":"test: verify the workbench UI/UX round on an isolated stack\n\nSeven gates (runtime 10 / public-file 10 / inference 6 / script 6 /\nproduction 13 / ui 41 steps + dependency audit) passed on a throwaway\nPostgreSQL/Redis/MinIO stack with the host ClamAV, bound to source\nfingerprint sha256:c416ae79…; pnpm check passes on the same tree. The\neleven heavy baseline rows are re-marked accordingly. Logs and report\ncopies: acceptance-artifacts/uiux-workbench-2026-09-09/.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/47ae7b7c711428134cc222f3544e4f59c936de4d","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-09T08:36:04-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"39d24383427a77895470147c6670d2a5332dd326","message":"docs: record the workbench UI/UX round and its evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/39d24383427a77895470147c6670d2a5332dd326","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-09T08:28:10-07:00","added":["docs/governance/log/2026-09-09-uiux-workbench.md","reports/uiux-workbench-2026-09-09/README.md","reports/uiux-workbench-2026-09-09/screens/after-desktop-create.jpg","reports/uiux-workbench-2026-09-09/screens/after-desktop-home.jpg","reports/uiux-workbench-2026-09-09/screens/after-mobile-home-full.jpg","reports/uiux-workbench-2026-09-09/screens/before-desktop-home.jpg","reports/uiux-workbench-2026-09-09/screens/before-mobile-home.jpg"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"8d57841881cc5270b1ef893be3ff0d5b9599cd20","message":"test: re-verify the workbench UI/UX round together with rate limiting\n\nSeven gates and the dependency audit passed again on the tree that\nmerges main (rate-limit round, cc0ce5e4) into this branch, bound to\nsha256:1d2a755beec5a59f51b245d59adbc2ba16d2f6448882247e713eb237e991dd3d; pnpm check passes. Heavy baseline rows re-marked.\nEvidence: acceptance-artifacts/uiux-workbench-2026-09-09/ (round1/ holds\nthe pre-merge run).\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8d57841881cc5270b1ef893be3ff0d5b9599cd20","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-09T08:50:56-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"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":810217,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T23:37: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
|
1788969101
|
1788969192
|
0
|
1788969100
|
1788969192
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23645
|
test: archive product acceptance and deployment ev test: archive product acceptance and deployment evidence...
|
57
|
5
|
governance.yml
|
17
|
5
|
0
|
refs/heads/main
|
6d8783033df4e606323fc0e81180e217f4f47007
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"368376ebf7770d77dd297d1765ff8611b5f7da12","after":"6d8783033df4e606323fc0e81180e217f4f47007","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/368376ebf7770d77dd297d1765ff8611b5f7da12...6d8783033df4e606323fc0e81180e217f4f47007","commits":[{"id":"6d8783033df4e606323fc0e81180e217f4f47007","message":"test: archive product acceptance and deployment evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6d8783033df4e606323fc0e81180e217f4f47007","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-05T20:28:36-07:00","added":["reports/adversarial-audit-2026-09-05-round2/README.md","reports/adversarial-audit-2026-09-05-round2/cleanup.json","reports/adversarial-audit-2026-09-05-round2/deploy-r2.sh","reports/adversarial-audit-2026-09-05-round2/summary.json","reports/content-skills-2026-09-05/README.md","reports/deployment-sync-2026-09-05-r3/README.md","reports/deployment-sync-2026-09-05-r3/backup-manifest.json","reports/deployment-sync-2026-09-05-r3/boundary-smoke.json","reports/deployment-sync-2026-09-05-r3/browser-smoke.json","reports/deployment-sync-2026-09-05-r3/deployment.json","reports/deployment-sync-2026-09-05-r3/ocr-smoke-initial.json","reports/deployment-sync-2026-09-05-r3/ocr-smoke.json","reports/deployment-sync-2026-09-05-r3/release-source.json","reports/deployment-sync-2026-09-05-r3/runtime-final.json","reports/deployment-sync-2026-09-05-r3/summary.json","reports/product-acceptance-2026-09-05/README.md","reports/product-acceptance-2026-09-05/dependency-audit.latest.json","reports/product-acceptance-2026-09-05/inference-acceptance.latest.json","reports/product-acceptance-2026-09-05/production-acceptance.latest.json","reports/product-acceptance-2026-09-05/public-file-acceptance.latest.json","reports/product-acceptance-2026-09-05/runtime-acceptance.latest.json","reports/product-acceptance-2026-09-05/runtime-suite-details.json","reports/product-acceptance-2026-09-05/script-acceptance.latest.json","reports/product-acceptance-2026-09-05/summary.json","reports/product-acceptance-2026-09-05/ui-acceptance.latest.json","reports/product-acceptance-2026-09-05/validation.json"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/validation-source.latest.json"]},{"id":"c3836da779fbd27c16184f6ff4ddd068c92e1bec","message":"docs: consolidate development experience and release records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c3836da779fbd27c16184f6ff4ddd068c92e1bec","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-05T20:28:36-07:00","added":["docs/development-experience/README.md","docs/development-experience/evidence.md","docs/development-experience/playbook.md","docs/development-experience/source-manifest.json","docs/development-experience/validation.json","docs/governance/log/2026-09-05-content-skills.md","docs/governance/log/2026-09-05-deployment-sync.md","docs/governance/log/2026-09-05-development-experience.md","docs/governance/log/2026-09-05-product-acceptance.md","docs/governance/log/2026-09-05-submit.md","docs/releases/2026-09-05-r2.md","docs/releases/2026-09-05-r3.md"],"removed":[],"modified":["CLAUDE.md","docs/README.md","docs/governance/log/2026-09-05.md","docs/product/content-creation-workbench.md"]},{"id":"cb1925c4b73c1fe59ee637f461cbaacd7c2bf36a","message":"docs: record r6 deployment hardening and verified backup recovery\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cb1925c4b73c1fe59ee637f461cbaacd7c2bf36a","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-05T20:24:46-07:00","added":["docs/governance/log/2026-09-05-deployment-hardening.md","docs/releases/2026-09-05-r6.md","reports/deployment-hardening-2026-09-05/README.md","reports/deployment-hardening-2026-09-05/browser-smoke.json","reports/deployment-hardening-2026-09-05/check-summary.json","reports/deployment-hardening-2026-09-05/dependency-audit.latest.json","reports/deployment-hardening-2026-09-05/deployed-desktop.png","reports/deployment-hardening-2026-09-05/deployed-mobile.png","reports/deployment-hardening-2026-09-05/deployment.json","reports/deployment-hardening-2026-09-05/existing-assets-smoke.json","reports/deployment-hardening-2026-09-05/image-dependency-audit.json","reports/deployment-hardening-2026-09-05/inference-acceptance.latest.json","reports/deployment-hardening-2026-09-05/ocr-smoke.json","reports/deployment-hardening-2026-09-05/permissions-smoke.json","reports/deployment-hardening-2026-09-05/preflight.json","reports/deployment-hardening-2026-09-05/production-acceptance.latest.json","reports/deployment-hardening-2026-09-05/public-file-acceptance.latest.json","reports/deployment-hardening-2026-09-05/restore-validation.json","reports/deployment-hardening-2026-09-05/runtime-acceptance.latest.json","reports/deployment-hardening-2026-09-05/runtime-final.json","reports/deployment-hardening-2026-09-05/script-acceptance.latest.json","reports/deployment-hardening-2026-09-05/ui-acceptance.latest.json","reports/deployment-hardening-2026-09-05/verify.json"],"removed":[],"modified":["CLAUDE.md","docs/deploy-vm.md","reports/adversarial-acceptance-audit.latest.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/storyboard-director-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"373f2d3c6e51970c3f8d367537f96a33be5d1968","message":"fix: compare release schema with deployed files and preserve build cache\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/373f2d3c6e51970c3f8d367537f96a33be5d1968","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-05T20:11:58-07:00","added":[],"removed":[],"modified":["deploy/vm/Dockerfile","deploy/vm/release.py","deploy/vm/release_test.py","deploy/vm/sidecar.Dockerfile"]},{"id":"354419914471d5fca9a9ed643a32fc00d6a847af","message":"fix: harden VM runtime and make releases verifiable and recoverable\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/354419914471d5fca9a9ed643a32fc00d6a847af","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-05T20:03:17-07:00","added":["apps/api-nestjs/src/worker-health.ts","deploy/vm/release.py","deploy/vm/release_test.py","scripts/check-worker-health.mjs","scripts/deployment-policy.test.mjs"],"removed":[],"modified":["apps/api-nestjs/src/creative-worker.ts","apps/api-nestjs/src/production-worker.ts","deploy/vm/Dockerfile","deploy/vm/deploy.sh","deploy/vm/docker-compose.yml","deploy/vm/release.sh","deploy/vm/sidecar.Dockerfile"]}],"total_commits":0,"head_commit":{"id":"6d8783033df4e606323fc0e81180e217f4f47007","message":"test: archive product acceptance and deployment evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6d8783033df4e606323fc0e81180e217f4f47007","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-05T20:28:36-07:00","added":["reports/adversarial-audit-2026-09-05-round2/README.md","reports/adversarial-audit-2026-09-05-round2/cleanup.json","reports/adversarial-audit-2026-09-05-round2/deploy-r2.sh","reports/adversarial-audit-2026-09-05-round2/summary.json","reports/content-skills-2026-09-05/README.md","reports/deployment-sync-2026-09-05-r3/README.md","reports/deployment-sync-2026-09-05-r3/backup-manifest.json","reports/deployment-sync-2026-09-05-r3/boundary-smoke.json","reports/deployment-sync-2026-09-05-r3/browser-smoke.json","reports/deployment-sync-2026-09-05-r3/deployment.json","reports/deployment-sync-2026-09-05-r3/ocr-smoke-initial.json","reports/deployment-sync-2026-09-05-r3/ocr-smoke.json","reports/deployment-sync-2026-09-05-r3/release-source.json","reports/deployment-sync-2026-09-05-r3/runtime-final.json","reports/deployment-sync-2026-09-05-r3/summary.json","reports/product-acceptance-2026-09-05/README.md","reports/product-acceptance-2026-09-05/dependency-audit.latest.json","reports/product-acceptance-2026-09-05/inference-acceptance.latest.json","reports/product-acceptance-2026-09-05/production-acceptance.latest.json","reports/product-acceptance-2026-09-05/public-file-acceptance.latest.json","reports/product-acceptance-2026-09-05/runtime-acceptance.latest.json","reports/product-acceptance-2026-09-05/runtime-suite-details.json","reports/product-acceptance-2026-09-05/script-acceptance.latest.json","reports/product-acceptance-2026-09-05/summary.json","reports/product-acceptance-2026-09-05/ui-acceptance.latest.json","reports/product-acceptance-2026-09-05/validation.json"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":283074,"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-09-06T09:24: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
|
4
|
1788665351
|
1788665418
|
0
|
1788665350
|
1788665418
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23736
|
test(video-edit): verify final timeline and previe test(video-edit): verify final timeline and preview release baseline...
|
57
|
5
|
governance.yml
|
107
|
5
|
0
|
refs/heads/main
|
32bdfb83944482eb042e5b98fcf9e0548d6e6953
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"138983033ed329e71d2367e12d7a9a2d018ba40d","after":"32bdfb83944482eb042e5b98fcf9e0548d6e6953","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/138983033ed329e71d2367e12d7a9a2d018ba40d...32bdfb83944482eb042e5b98fcf9e0548d6e6953","commits":[{"id":"32bdfb83944482eb042e5b98fcf9e0548d6e6953","message":"test(video-edit): verify final timeline and preview release baseline\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/32bdfb83944482eb042e5b98fcf9e0548d6e6953","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-08T16:52:06-07:00","added":["reports/video-timeline-preview-2026-09-08/README.md","reports/video-timeline-preview-2026-09-08/browser-verification.json","reports/video-timeline-preview-2026-09-08/post-production-api.json","reports/video-timeline-preview-2026-09-08/specialty-results.json","reports/video-timeline-preview-2026-09-08/subtitle-api.json","reports/video-timeline-preview-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-timeline-preview.md","docs/product/pro-video-platform-gap-analysis.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"8bf20b8197eb3a04895d3caf4c7123a59b0d6d00","message":"Merge branch 'main' into feat/video-timeline-preview\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8bf20b8197eb3a04895d3caf4c7123a59b0d6d00","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-08T16:48:29-07:00","added":["docs/releases/2026-09-08-ass1.md","reports/ass-import-2026-09-08/backup-verification.json","reports/ass-import-2026-09-08/browser-verification.json","reports/ass-import-2026-09-08/deployed-verify.json","reports/ass-import-2026-09-08/live-media.json","reports/ass-import-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-ass-import.md","docs/releases/current.md","reports/ass-import-2026-09-08/README.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"9749d299002249818d6fd7739ee42d904d6cbe3b","message":"Merge branch 'main' into feat/video-timeline-preview\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9749d299002249818d6fd7739ee42d904d6cbe3b","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-08T16:41:02-07:00","added":["docs/governance/log/2026-09-08-ass-import.md","docs/releases/2026-09-08-video-memory1.md","packages/contracts/src/video-edit-ass.test.ts","reports/ass-import-2026-09-08/README.md","reports/ass-import-2026-09-08/ass-import.png","reports/ass-import-2026-09-08/browser-results.json","reports/ass-import-2026-09-08/desktop-audio.png","reports/ass-import-2026-09-08/final-gates.json","reports/ass-import-2026-09-08/mobile-audio.png","reports/ass-import-2026-09-08/output.png","reports/ass-import-2026-09-08/post-production-api.json","reports/ass-import-2026-09-08/recording.json","reports/ass-import-2026-09-08/specialty-results.json","reports/ass-import-2026-09-08/subtitle-api.json","reports/ass-import-2026-09-08/ui.json","reports/video-render-memory-2026-09-08/backup-verification.json","reports/video-render-memory-2026-09-08/deployed-verify.json","reports/video-render-memory-2026-09-08/deployment.json","reports/video-render-memory-2026-09-08/live-render.json","reports/video-render-memory-2026-09-08/post-deployment-smoke.json","reports/video-render-memory-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-nestjs/package.json","apps/web/src/components/material-factory/video-edit/CaptionEditor.tsx","docs/product/ai-video-edit.md","docs/releases/current.md","packages/contracts/package.json","packages/contracts/src/video-edit.ts","packages/enterprise-identity/package.json","packages/industry-trends/package.json","packages/model-credentials/package.json","packages/public-file/package.json","packages/shijie-domain/package.json","packages/shijie-runtime/package.json","packages/video-edit/package.json","reports/admin-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png","reports/video-render-memory-2026-09-08/README.md","scripts/check-video-post-production-ui.cjs","scripts/check-video-post-production.cjs"]},{"id":"4d35c308611d9d15db094fd2ca3d1dbd01262fac","message":"docs(video-edit): record actual seeking gap and verified preview behavior\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4d35c308611d9d15db094fd2ca3d1dbd01262fac","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-08T16:40:48-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-08-video-timeline-preview.md","docs/product/pro-video-platform-gap-analysis.md"]},{"id":"751e494ce5c32e6f27a17dbb3cd48ef83b7cf93d","message":"fix(video-edit): support guarded source-video byte ranges for seeking\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/751e494ce5c32e6f27a17dbb3cd48ef83b7cf93d","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-08T16:35:13-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/web/src/components/material-factory/video-edit/FinishEditor.tsx","packages/public-file/src/rendered-file.test.ts","packages/public-file/src/rendered-file.ts","scripts/check-video-edit-acceptance.cjs"]}],"total_commits":0,"head_commit":{"id":"32bdfb83944482eb042e5b98fcf9e0548d6e6953","message":"test(video-edit): verify final timeline and preview release baseline\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/32bdfb83944482eb042e5b98fcf9e0548d6e6953","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-08T16:52:06-07:00","added":["reports/video-timeline-preview-2026-09-08/README.md","reports/video-timeline-preview-2026-09-08/browser-verification.json","reports/video-timeline-preview-2026-09-08/post-production-api.json","reports/video-timeline-preview-2026-09-08/specialty-results.json","reports/video-timeline-preview-2026-09-08/subtitle-api.json","reports/video-timeline-preview-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-timeline-preview.md","docs/product/pro-video-platform-gap-analysis.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"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":723512,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T07:45:28+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
3
|
0
|
1788911963
|
0
|
1788911538
|
1788911963
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23726
|
test(video-edit): verify final professional post-p test(video-edit): verify final professional post-production release...
|
57
|
5
|
governance.yml
|
97
|
5
|
0
|
refs/heads/main
|
a8068fca74ef55e4907e8340471ab303fe78a3dd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7ceb1b0680b6a83b3830afcc0efbb49501e58c5f","after":"a8068fca74ef55e4907e8340471ab303fe78a3dd","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/7ceb1b0680b6a83b3830afcc0efbb49501e58c5f...a8068fca74ef55e4907e8340471ab303fe78a3dd","commits":[{"id":"a8068fca74ef55e4907e8340471ab303fe78a3dd","message":"test(video-edit): verify final professional post-production release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a8068fca74ef55e4907e8340471ab303fe78a3dd","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-08T12:16:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-pro-video-post-production.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.output-mobile.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/pro-video-2026-09-08/README.md","reports/pro-video-2026-09-08/api-media.json","reports/pro-video-2026-09-08/browser.json","reports/pro-video-2026-09-08/desktop-audio.png","reports/pro-video-2026-09-08/mobile-audio.png","reports/pro-video-2026-09-08/validation.json","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},{"id":"8f4f826a7eb24e1d31b829f8202349c593b0f5f3","message":"Merge branch 'main' into feat/pro-video-post-production\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8f4f826a7eb24e1d31b829f8202349c593b0f5f3","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-08T12:07:57-07:00","added":["docs/releases/2026-09-08-quality1.md","reports/quality-coverage-2026-09-08/backup-verification.json","reports/quality-coverage-2026-09-08/browser-verification.json","reports/quality-coverage-2026-09-08/deployed-desktop.png","reports/quality-coverage-2026-09-08/deployed-mobile.png","reports/quality-coverage-2026-09-08/deployed-verify.json","reports/quality-coverage-2026-09-08/deployment.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-quality-coverage.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/quality-coverage-2026-09-08/README.md"]},{"id":"1358aa8ac383fd60db00890d060a27755eb58e83","message":"fix(video-edit): preserve manual finishing settings in AI candidates\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1358aa8ac383fd60db00890d060a27755eb58e83","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-08T12:07:57-07:00","added":[],"removed":[],"modified":["packages/video-edit/src/planner.ts","packages/video-edit/src/subtitles.test.ts"]}],"total_commits":0,"head_commit":{"id":"a8068fca74ef55e4907e8340471ab303fe78a3dd","message":"test(video-edit): verify final professional post-production release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a8068fca74ef55e4907e8340471ab303fe78a3dd","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-08T12:16:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-pro-video-post-production.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.output-mobile.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/pro-video-2026-09-08/README.md","reports/pro-video-2026-09-08/api-media.json","reports/pro-video-2026-09-08/browser.json","reports/pro-video-2026-09-08/desktop-audio.png","reports/pro-video-2026-09-08/mobile-audio.png","reports/pro-video-2026-09-08/validation.json","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":687457,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T03:06: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":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
4
|
1788894998
|
1788895024
|
0
|
1788894998
|
1788895024
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23740
|
test(video-edit): verify direct timeline editing r test(video-edit): verify direct timeline editing release baseline...
|
57
|
5
|
governance.yml
|
111
|
5
|
0
|
refs/heads/main
|
9a541a3406a35f02960bb330a7c7475a351fab25
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9b89290bab75ea32c59892a594d1a67df6804b6","after":"9a541a3406a35f02960bb330a7c7475a351fab25","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/e9b89290bab75ea32c59892a594d1a67df6804b6...9a541a3406a35f02960bb330a7c7475a351fab25","commits":[{"id":"9a541a3406a35f02960bb330a7c7475a351fab25","message":"test(video-edit): verify direct timeline editing release baseline\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9a541a3406a35f02960bb330a7c7475a351fab25","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-08T17:16:01-07:00","added":["reports/video-timeline-editing-2026-09-08/README.md","reports/video-timeline-editing-2026-09-08/browser-verification.json","reports/video-timeline-editing-2026-09-08/post-production-api.json","reports/video-timeline-editing-2026-09-08/specialty-results.json","reports/video-timeline-editing-2026-09-08/subtitle-api.json","reports/video-timeline-editing-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-timeline-editing.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"75d8ae2ae4976d2b5ae9905b7275469089eed962","message":"Merge branch 'main' into feat/video-timeline-preview\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/75d8ae2ae4976d2b5ae9905b7275469089eed962","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-08T17:15:12-07:00","added":["docs/releases/2026-09-08-subtitle-burn1.md","reports/subtitle-burn-2026-09-08/README.md","reports/subtitle-burn-2026-09-08/api.json","reports/subtitle-burn-2026-09-08/backup-verification.json","reports/subtitle-burn-2026-09-08/browser-verification.json","reports/subtitle-burn-2026-09-08/deployed-verify.json","reports/subtitle-burn-2026-09-08/deployment.json","reports/subtitle-burn-2026-09-08/output.png","reports/subtitle-burn-2026-09-08/post-deployment-smoke.json","reports/subtitle-burn-2026-09-08/post-production.json","reports/subtitle-burn-2026-09-08/subtitle-burn-mobile.png","reports/subtitle-burn-2026-09-08/subtitle-burn.png","reports/subtitle-burn-2026-09-08/subtitle-regression.json","reports/subtitle-burn-2026-09-08/ui.json","reports/subtitle-burn-2026-09-08/validation.json"],"removed":[],"modified":["docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"9dc2165d25aecc1540a58928305221113c9522e6","message":"feat(video-edit): add atomic timeline trim roll slip and editing shortcuts\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9dc2165d25aecc1540a58928305221113c9522e6","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-08T17:09:53-07:00","added":["docs/governance/log/2026-09-08-video-timeline-editing.md","docs/product/pro-video-platform-progress.md","packages/contracts/src/video-edit-timeline.test.ts","packages/contracts/src/video-edit-timeline.ts"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/video-edit/EditTimeline.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/video-edit.module.css","docs/product/pro-video-platform-gap-analysis.md","packages/contracts/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"9a541a3406a35f02960bb330a7c7475a351fab25","message":"test(video-edit): verify direct timeline editing release baseline\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9a541a3406a35f02960bb330a7c7475a351fab25","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-08T17:16:01-07:00","added":["reports/video-timeline-editing-2026-09-08/README.md","reports/video-timeline-editing-2026-09-08/browser-verification.json","reports/video-timeline-editing-2026-09-08/post-production-api.json","reports/video-timeline-editing-2026-09-08/specialty-results.json","reports/video-timeline-editing-2026-09-08/subtitle-api.json","reports/video-timeline-editing-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-timeline-editing.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"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":724373,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T08:09:24+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
3
|
0
|
1788913472
|
0
|
1788912983
|
1788913472
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23712
|
test(trends): validate integration with current na test(trends): validate integration with current navigation...
|
57
|
5
|
governance.yml
|
83
|
5
|
0
|
refs/heads/main
|
64569e7b833676563fdaa09d8c54c7aaef46a883
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ce66078ab3c983a80abb951509f838439b8ef3a4","after":"64569e7b833676563fdaa09d8c54c7aaef46a883","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ce66078ab3c983a80abb951509f838439b8ef3a4...64569e7b833676563fdaa09d8c54c7aaef46a883","commits":[{"id":"64569e7b833676563fdaa09d8c54c7aaef46a883","message":"test(trends): validate integration with current navigation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/64569e7b833676563fdaa09d8c54c7aaef46a883","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-08T11:12:23-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"7e7352814b00780ef8f29cd6ca3d0ade5f8c7841","message":"merge: retain current menu navigation with industry trends\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7e7352814b00780ef8f29cd6ca3d0ade5f8c7841","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-08T11:11:29-07:00","added":["docs/governance/log/2026-09-08-menu-toggle.md","reports/full-submit-2026-09-08/deployment.json","reports/full-submit-2026-09-08/video-task-resolution.json","reports/menu-toggle-2026-09-08/README.md","reports/menu-toggle-2026-09-08/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/factory-shell.module.css","docs/governance/log/2026-09-08-full-submit.md","docs/releases/2026-09-08-r50-attempt.md","docs/releases/current.md","scripts/check-ui-acceptance.mjs"]},{"id":"4cc9bd9096578aa2cdd2132109be82e595f1f311","message":"test(trends): record full frozen-source acceptance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4cc9bd9096578aa2cdd2132109be82e595f1f311","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-08T11:10:55-07:00","added":["reports/industry-trends-2026-09-08/browser-result.json","reports/industry-trends-2026-09-08/migration-preflight.json","reports/industry-trends-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-industry-trends.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.images-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json"]},{"id":"e88adabc3fd85262c808146f5b9e52705abcb333","message":"Merge branch 'main' into codex/industry-trends\n\n# Conflicts:\n#\treports/governance-docs.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/e88adabc3fd85262c808146f5b9e52705abcb333","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-08T11:05:05-07:00","added":["docs/releases/2026-09-08-r50-attempt.md","reports/full-submit-2026-09-08/release-attempt.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-full-submit.md","docs/releases/current.md"]},{"id":"b1b59616ff88a673787ec2c6eaf147b9be839644","message":"fix(trends): preserve the content root in mobile navigation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b1b59616ff88a673787ec2c6eaf147b9be839644","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-08T11:04:54-07:00","added":[],"removed":[],"modified":["apps/web/src/components/material-factory/FactoryShell.tsx","docs/README.md","docs/deploy-vm.md","docs/governance/log/2026-09-08-industry-trends.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"64569e7b833676563fdaa09d8c54c7aaef46a883","message":"test(trends): validate integration with current navigation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/64569e7b833676563fdaa09d8c54c7aaef46a883","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-08T11:12:23-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":649489,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T02:10:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1788891165
|
1788891258
|
0
|
1788891165
|
1788891258
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23787
|
test(template): verify combined release and settle test(template): verify combined release and settled director locking...
|
57
|
5
|
governance.yml
|
157
|
5
|
0
|
refs/heads/main
|
5be805bc68721833734282a6940007a275583165
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ab568e701b98d0e678ee9af7b1c56ccf1937e576","after":"5be805bc68721833734282a6940007a275583165","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ab568e701b98d0e678ee9af7b1c56ccf1937e576...5be805bc68721833734282a6940007a275583165","commits":[{"id":"5be805bc68721833734282a6940007a275583165","message":"test(template): verify combined release and settled director locking\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5be805bc68721833734282a6940007a275583165","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-09T04:36:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-making-uiux.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-making-uiux-20260909/README.md","reports/template-making-uiux-20260909/summary.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},{"id":"3568643a79588fcc4a9f76c1aabc201291379048","message":"docs: retain verified frame rollout records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/3568643a79588fcc4a9f76c1aabc201291379048","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-09T04:26:07-07:00","added":["docs/releases/2026-09-09-storyboard-frames1.md","reports/storyboard-frame-dialog-20260909/live-verification.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.json"]},{"id":"6c0025e13c2f8abdef7332129ae9407570093694","message":"merge: preserve published frame dialogs before template release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6c0025e13c2f8abdef7332129ae9407570093694","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-09T04:24:27-07:00","added":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","reports/director-review-20260909/summary.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/desktop.first.png","reports/storyboard-frame-dialog-20260909/desktop.last.png","reports/storyboard-frame-dialog-20260909/mobile.first.png","reports/storyboard-frame-dialog-20260909/mobile.last.png","reports/storyboard-frame-dialog-20260909/mobile.saved.png","reports/storyboard-frame-dialog-20260909/summary.json","scripts/lib/storyboard-frame-dialog-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/StoryboardFrameGeneration.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","docs/governance/log/2026-09-09-director-review.md","reports/contract-consumers.latest.json","reports/director-review-20260909/README.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},{"id":"1f75c207f4de0e7dfe94b0184b74d3e9d1f0fba2","message":"fix(template): keep focused fields visible in compact editor layouts\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1f75c207f4de0e7dfe94b0184b74d3e9d1f0fba2","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-09T04:24:13-07:00","added":["docs/releases/2026-09-09-template-making-uiux1.md"],"removed":[],"modified":["apps/web/src/components/material-factory/EditStudio.tsx","docs/governance/log/2026-09-09-template-making-uiux.md","reports/dependency-audit.latest.json","reports/inference-acceptance.latest.json","reports/production-acceptance.latest.json","reports/public-file-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/template-making-uiux-20260909/summary.json","reports/ui-acceptance.latest.json","scripts/lib/template-making-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"5be805bc68721833734282a6940007a275583165","message":"test(template): verify combined release and settled director locking\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5be805bc68721833734282a6940007a275583165","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-09T04:36:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-making-uiux.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-making-uiux-20260909/README.md","reports/template-making-uiux-20260909/summary.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.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":774066,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T19:25:17+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
|
1788953800
|
1788953840
|
0
|
1788953798
|
1788953840
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23785
|
test(storyboard): freeze verified frame dialog rel test(storyboard): freeze verified frame dialog release scope...
|
57
|
5
|
governance.yml
|
155
|
5
|
0
|
refs/heads/main
|
ed9b5df870bf72edcc8be883dec811b649aa13db
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"588c69a848df6f7ee9e42b0f099f2eb02b4d9a74","after":"ed9b5df870bf72edcc8be883dec811b649aa13db","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/588c69a848df6f7ee9e42b0f099f2eb02b4d9a74...ed9b5df870bf72edcc8be883dec811b649aa13db","commits":[{"id":"ed9b5df870bf72edcc8be883dec811b649aa13db","message":"test(storyboard): freeze verified frame dialog release scope\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ed9b5df870bf72edcc8be883dec811b649aa13db","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-09T04:17:35-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"12eee55db00f40d5c4fb930a449700862494e72a","message":"Merge branch 'main' into fix/storyboard-draft-model\n\n# Conflicts:\n#\tCLAUDE.md\n#\treports/contract-consumers.latest.json\n#\treports/dependency-audit.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/inference-acceptance.latest.json\n#\treports/material-review-concurrency-guard.latest.json\n#\treports/migrations.latest.json\n#\treports/module-boundary.latest.json\n#\treports/naming.latest.json\n#\treports/order-concurrency-guard.latest.json\n#\treports/production-acceptance.latest.json\n#\treports/production-security.latest.json\n#\treports/public-file-acceptance.latest.json\n#\treports/public-file-integration.latest.json\n#\treports/runtime-acceptance.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/script-acceptance.latest.json\n#\treports/sidecar-tests.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/toolchain.latest.json\n#\treports/ui-acceptance.latest.json\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/12eee55db00f40d5c4fb930a449700862494e72a","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-09T04:13:25-07:00","added":["reports/director-review-20260909/summary.json","reports/template-making-uiux-20260909/summary.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-director-review.md","docs/governance/log/2026-09-09-template-making-uiux.md","reports/director-review-20260909/README.md","reports/template-making-uiux-20260909/README.md"]},{"id":"4350b3cecf43560fc8329e34a7386e4f0725da9f","message":"test(storyboard): verify frame dialogs through real save workflows\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4350b3cecf43560fc8329e34a7386e4f0725da9f","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-09T04:11:01-07:00","added":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/desktop.first.png","reports/storyboard-frame-dialog-20260909/desktop.last.png","reports/storyboard-frame-dialog-20260909/mobile.first.png","reports/storyboard-frame-dialog-20260909/mobile.last.png","reports/storyboard-frame-dialog-20260909/mobile.saved.png","reports/storyboard-frame-dialog-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"f8483010baee1e8dafb866c4cb554133ca515ad2","message":"Merge commit '7f9a6766' into fix/storyboard-draft-model\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f8483010baee1e8dafb866c4cb554133ca515ad2","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-09T04:03:10-07:00","added":["apps/web/src/components/material-factory/TemplateMakingCanvas.tsx","docs/governance/log/2026-09-09-template-making-uiux.md","reports/template-making-uiux-20260909/README.md","scripts/lib/template-making-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/NewTemplateButton.tsx","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-asset-dialog-ui-acceptance.mjs"]},{"id":"7c71e290d79de068685c7848ad40423059ef9cb3","message":"Merge branch 'main' into fix/storyboard-draft-model\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7c71e290d79de068685c7848ad40423059ef9cb3","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-09T04:02:47-07:00","added":["docs/governance/log/2026-09-09-director-review.md","docs/releases/2026-09-09-template-preview1.md","reports/director-review-20260909/README.md","reports/template-preview-20260909/live-browser.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","docs/governance/log/2026-09-09-template-preview.md","docs/releases/current.md","reports/template-preview-20260909/README.md","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"ed9b5df870bf72edcc8be883dec811b649aa13db","message":"test(storyboard): freeze verified frame dialog release scope\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ed9b5df870bf72edcc8be883dec811b649aa13db","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-09T04:17:35-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":773297,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T19:09:40+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788952660
|
1788952721
|
0
|
1788952660
|
1788952721
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23646
|
test(reports): 归档对抗审计第二轮证据日志并刷新主分支门禁报告
|
57
|
5
|
governance.yml
|
18
|
5
|
0
|
refs/heads/main
|
acd2accfb017c5b4e3f7ff5f00f33dd367797889
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6d8783033df4e606323fc0e81180e217f4f47007","after":"acd2accfb017c5b4e3f7ff5f00f33dd367797889","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/6d8783033df4e606323fc0e81180e217f4f47007...acd2accfb017c5b4e3f7ff5f00f33dd367797889","commits":[{"id":"acd2accfb017c5b4e3f7ff5f00f33dd367797889","message":"test(reports): 归档对抗审计第二轮证据日志并刷新主分支门禁报告\n\n- 对抗审计第二轮(reports/adversarial-audit-2026-09-05-round2)的 24 份证据日志按既有审计目录惯例强制入库:\n 路由大小写探针、权限映射探针、修复前后 route-shape / guard / contracts 复验、四次 check:runtime、\n 部署前后状态与 16 项线上边界探针、操作者部署终端摘录、三次 pnpm check(含主分支 6d87830 提交后的 precommit 复核,43 项脚本自测通过)。\n- 刷新 reports/*.latest.json:与主分支 6d87830 同一棵树上的静态门禁与治理棘轮结果(heavyGateDocDrift 0)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/acd2accfb017c5b4e3f7ff5f00f33dd367797889","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-05T20:34:33-07:00","added":["reports/adversarial-audit-2026-09-05-round2/check-runtime-final.log","reports/adversarial-audit-2026-09-05-round2/check-runtime-final2.log","reports/adversarial-audit-2026-09-05-round2/check-runtime-followup.log","reports/adversarial-audit-2026-09-05-round2/check-runtime.log","reports/adversarial-audit-2026-09-05-round2/contracts-material-access-after-fix.log","reports/adversarial-audit-2026-09-05-round2/contracts-permission-probe-before-fix.log","reports/adversarial-audit-2026-09-05-round2/deploy-after.log","reports/adversarial-audit-2026-09-05-round2/deploy-before.log","reports/adversarial-audit-2026-09-05-round2/deploy-user-run.log","reports/adversarial-audit-2026-09-05-round2/deployed-bff-origin-probe.log","reports/adversarial-audit-2026-09-05-round2/deployed-surface-probe.log","reports/adversarial-audit-2026-09-05-round2/fastify-full-suite-rerun.log","reports/adversarial-audit-2026-09-05-round2/fastify-http-acceptance-after-cas-fix.log","reports/adversarial-audit-2026-09-05-round2/fastify-http-orders-runscoped.log","reports/adversarial-audit-2026-09-05-round2/fastify-route-shape.log","reports/adversarial-audit-2026-09-05-round2/fastify-trust-route-shape-after-fix.log","reports/adversarial-audit-2026-09-05-round2/nestjs-http-acceptance-after-cas-fix.log","reports/adversarial-audit-2026-09-05-round2/nestjs-leases-http-orders-runscoped.log","reports/adversarial-audit-2026-09-05-round2/nestjs-route-shape-after-fix.log","reports/adversarial-audit-2026-09-05-round2/nestjs-route-shape-before-fix.log","reports/adversarial-audit-2026-09-05-round2/pnpm-check-final.log","reports/adversarial-audit-2026-09-05-round2/pnpm-check-followup.log","reports/adversarial-audit-2026-09-05-round2/pnpm-check-precommit.log","reports/adversarial-audit-2026-09-05-round2/route-case-probe.log"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"acd2accfb017c5b4e3f7ff5f00f33dd367797889","message":"test(reports): 归档对抗审计第二轮证据日志并刷新主分支门禁报告\n\n- 对抗审计第二轮(reports/adversarial-audit-2026-09-05-round2)的 24 份证据日志按既有审计目录惯例强制入库:\n 路由大小写探针、权限映射探针、修复前后 route-shape / guard / contracts 复验、四次 check:runtime、\n 部署前后状态与 16 项线上边界探针、操作者部署终端摘录、三次 pnpm check(含主分支 6d87830 提交后的 precommit 复核,43 项脚本自测通过)。\n- 刷新 reports/*.latest.json:与主分支 6d87830 同一棵树上的静态门禁与治理棘轮结果(heavyGateDocDrift 0)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/acd2accfb017c5b4e3f7ff5f00f33dd367797889","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-05T20:34:33-07:00","added":["reports/adversarial-audit-2026-09-05-round2/check-runtime-final.log","reports/adversarial-audit-2026-09-05-round2/check-runtime-final2.log","reports/adversarial-audit-2026-09-05-round2/check-runtime-followup.log","reports/adversarial-audit-2026-09-05-round2/check-runtime.log","reports/adversarial-audit-2026-09-05-round2/contracts-material-access-after-fix.log","reports/adversarial-audit-2026-09-05-round2/contracts-permission-probe-before-fix.log","reports/adversarial-audit-2026-09-05-round2/deploy-after.log","reports/adversarial-audit-2026-09-05-round2/deploy-before.log","reports/adversarial-audit-2026-09-05-round2/deploy-user-run.log","reports/adversarial-audit-2026-09-05-round2/deployed-bff-origin-probe.log","reports/adversarial-audit-2026-09-05-round2/deployed-surface-probe.log","reports/adversarial-audit-2026-09-05-round2/fastify-full-suite-rerun.log","reports/adversarial-audit-2026-09-05-round2/fastify-http-acceptance-after-cas-fix.log","reports/adversarial-audit-2026-09-05-round2/fastify-http-orders-runscoped.log","reports/adversarial-audit-2026-09-05-round2/fastify-route-shape.log","reports/adversarial-audit-2026-09-05-round2/fastify-trust-route-shape-after-fix.log","reports/adversarial-audit-2026-09-05-round2/nestjs-http-acceptance-after-cas-fix.log","reports/adversarial-audit-2026-09-05-round2/nestjs-leases-http-orders-runscoped.log","reports/adversarial-audit-2026-09-05-round2/nestjs-route-shape-after-fix.log","reports/adversarial-audit-2026-09-05-round2/nestjs-route-shape-before-fix.log","reports/adversarial-audit-2026-09-05-round2/pnpm-check-final.log","reports/adversarial-audit-2026-09-05-round2/pnpm-check-followup.log","reports/adversarial-audit-2026-09-05-round2/pnpm-check-precommit.log","reports/adversarial-audit-2026-09-05-round2/route-case-probe.log"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":283836,"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-09-06T11:29: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
|
4
|
1788665682
|
1788665721
|
0
|
1788665681
|
1788665721
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23501
|
test(llm): anthropic 协议后端验收 + 真实超时重试链 + live smoke test(llm): anthropic 协议后端验收 + 真实超时重试链 + live smoke 脚本(关闭 G18 两盲区)...
|
76
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
31591db0504c787ba6162697ffd05e2a3fe9f1ec
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d66fbcbb48ca0e0fc2b252b67accac472b8d800f","after":"31591db0504c787ba6162697ffd05e2a3fe9f1ec","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/d66fbcbb48ca0e0fc2b252b67accac472b8d800f...31591db0504c787ba6162697ffd05e2a3fe9f1ec","commits":[{"id":"31591db0504c787ba6162697ffd05e2a3fe9f1ec","message":"test(llm): anthropic 协议后端验收 + 真实超时重试链 + live smoke 脚本(关闭 G18 两盲区)\n\n- 两后端各增 llm.anthropic.acceptance.test.ts(独立文件防 env 串扰,沿 auth.rs256 先例):\n /messages + x-api-key + anthropic-version 协议头、usage 从 input/output_tokens 归一化、\n 响应慢于 LLM_TIMEOUT_MS → AbortController abort → transient → BullMQ 重试收敛\n- scripts/llm-live-smoke.mjs(pnpm llm:smoke):真 key 冒烟,env 与后端同源复用\n runAnalysisLlm 策略体;三条退出路径(0 通过/1 失败带分类/2 桩姿态)均已本地实证;\n 不进门禁不写 reports/\n- check:dual-backend LLM 绊网扩展:anthropic 验收文件存在性红线(负向已验证)\n- 地板棘轮:testsPassed 350→354(--update-baseline 全绿后收紧,专属基座\n runtime_llm+Redis/8)、ownTests 49→51、ownTestCases 339→343\n- G18 关闭 anthropic/超时两条盲区,live smoke 更新为「脚本已备待真 key 实跑」\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/31591db0504c787ba6162697ffd05e2a3fe9f1ec","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T23:48:00-07:00","added":["apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","scripts/llm-live-smoke.mjs"],"removed":[],"modified":["CLAUDE.md","docs/domain/llm-execution-blueprint.md","package.json","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/validation-source.latest.json","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"31591db0504c787ba6162697ffd05e2a3fe9f1ec","message":"test(llm): anthropic 协议后端验收 + 真实超时重试链 + live smoke 脚本(关闭 G18 两盲区)\n\n- 两后端各增 llm.anthropic.acceptance.test.ts(独立文件防 env 串扰,沿 auth.rs256 先例):\n /messages + x-api-key + anthropic-version 协议头、usage 从 input/output_tokens 归一化、\n 响应慢于 LLM_TIMEOUT_MS → AbortController abort → transient → BullMQ 重试收敛\n- scripts/llm-live-smoke.mjs(pnpm llm:smoke):真 key 冒烟,env 与后端同源复用\n runAnalysisLlm 策略体;三条退出路径(0 通过/1 失败带分类/2 桩姿态)均已本地实证;\n 不进门禁不写 reports/\n- check:dual-backend LLM 绊网扩展:anthropic 验收文件存在性红线(负向已验证)\n- 地板棘轮:testsPassed 350→354(--update-baseline 全绿后收紧,专属基座\n runtime_llm+Redis/8)、ownTests 49→51、ownTestCases 339→343\n- G18 关闭 anthropic/超时两条盲区,live smoke 更新为「脚本已备待真 key 实跑」\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/31591db0504c787ba6162697ffd05e2a3fe9f1ec","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T23:48:00-07:00","added":["apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","scripts/llm-live-smoke.mjs"],"removed":[],"modified":["CLAUDE.md","docs/domain/llm-execution-blueprint.md","package.json","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/validation-source.latest.json","scripts/check-dual-backend-parity.mjs"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1036,"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-20T14:47: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
|
6
|
1787208722
|
1787208752
|
0
|
1787208720
|
1787208752
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23707
|
test(integration): verify complete pending feature test(integration): verify complete pending feature integration...
|
57
|
5
|
governance.yml
|
78
|
5
|
0
|
refs/heads/main
|
edf81b7af0339292012403cd9ba54c3031e3dd99
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8819672f681ea0a3efa619e8294de8118b21825f","after":"edf81b7af0339292012403cd9ba54c3031e3dd99","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/8819672f681ea0a3efa619e8294de8118b21825f...edf81b7af0339292012403cd9ba54c3031e3dd99","commits":[{"id":"edf81b7af0339292012403cd9ba54c3031e3dd99","message":"test(integration): verify complete pending feature integration\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/edf81b7af0339292012403cd9ba54c3031e3dd99","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-08T10:48:38-07:00","added":["docs/governance/log/2026-09-08-full-submit.md","reports/full-submit-2026-09-08/README.md","reports/full-submit-2026-09-08/summary.json"],"removed":[],"modified":["CLAUDE.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/advanced-image-skills-2026-09-08/initial-ui.log","reports/advanced-image-skills-2026-09-08/migrations.log","reports/advanced-image-skills-2026-09-08/ui.log","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/content-image-composition-2026-09-08/migrations.log","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json"]},{"id":"aa904b9d02dce5bc3086803d658ac53a62b59070","message":"Merge branch 'main' into integrate/full-submit-20260908\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/aa904b9d02dce5bc3086803d658ac53a62b59070","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-08T10:47:16-07:00","added":["docs/releases/2026-09-08-r49.md","reports/screenplay-purpose-2026-09-08/summary.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-screenplay-purpose.md","docs/releases/current.md","reports/screenplay-purpose-2026-09-08/README.md"]},{"id":"3e211e4fe1519a04f86ab93317fa21eeddf4627c","message":"feat(creative): support reviewed historical queue cancellation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/3e211e4fe1519a04f86ab93317fa21eeddf4627c","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-07T20:45:12-07:00","added":["apps/api-fastify/test/creative-queue-http.integration.test.ts","apps/api-fastify/test/creative-queue.integration.test.ts","apps/api-nestjs/test/creative-queue-http.integration.test.ts","apps/api-nestjs/test/creative-queue.integration.test.ts","apps/web/src/components/material-factory/ClearCreativeQueue.tsx","docs/governance/log/2026-09-08-clear-creative-queue.md","packages/contracts/src/creative-queue.test.ts","reports/clear-creative-queue-2026-09-08/README.md","reports/clear-creative-queue-2026-09-08/check.txt","reports/clear-creative-queue-2026-09-08/contracts.txt","reports/clear-creative-queue-2026-09-08/integration.txt"],"removed":[],"modified":["apps/api-fastify/src/modules/creative-project/creative-project.service.ts","apps/api-fastify/src/routes/creative-project.ts","apps/api-nestjs/src/creative-project/creative-project.controller.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/web/src/components/material-factory/CreativeProjectBar.tsx","apps/web/src/lib/api.ts","packages/contracts/src/creative-project.ts","packages/contracts/src/material-access.test.ts","packages/contracts/src/material-access.ts"]},{"id":"c3b2c7594343c8576b0af994222ae034169e1a10","message":"test(video-edit): verify subtitle exports and frame-aligned composition\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c3b2c7594343c8576b0af994222ae034169e1a10","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-06T20:52:03-07:00","added":["reports/ai-video-edit-subtitles-20260907/README.md","reports/ai-video-edit-subtitles-20260907/api.json","reports/ai-video-edit-subtitles-20260907/source.json","reports/ai-video-edit-subtitles-20260907/ui.json","scripts/check-video-edit-subtitles-ui.cjs"],"removed":[],"modified":["docs/governance/log/2026-09-07.md","docs/product/ai-video-edit.md","scripts/check-video-edit-acceptance.cjs"]},{"id":"6a2e93d9916c33c7d6a8ae2eaf13a9b00e25b57a","message":"feat(video-edit): add source-timed subtitles and constrained AI candidates\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6a2e93d9916c33c7d6a8ae2eaf13a9b00e25b57a","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-06T20:46:51-07:00","added":["apps/web/src/components/material-factory/video-edit/CaptionEditor.tsx","packages/video-edit/src/planner.ts","packages/video-edit/src/subtitles.test.ts","packages/video-edit/src/subtitles.ts"],"removed":[],"modified":["apps/api-fastify/src/routes/video-edit.ts","apps/api-nestjs/src/video-edit/video-edit.controller.ts","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/video-edit.module.css","apps/web/src/lib/api.ts","deploy/vm/Dockerfile","docs/domain/owner-matrix.md","docs/product/ai-video-edit.md","packages/contracts/src/creative-stage-progress.ts","packages/contracts/src/video-edit.ts","packages/video-edit/src/index.ts","packages/video-edit/src/media.ts","packages/video-edit/src/worker.ts","scripts/check-video-edit-acceptance.cjs"]}],"total_commits":0,"head_commit":{"id":"edf81b7af0339292012403cd9ba54c3031e3dd99","message":"test(integration): verify complete pending feature integration\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/edf81b7af0339292012403cd9ba54c3031e3dd99","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-08T10:48:38-07:00","added":["docs/governance/log/2026-09-08-full-submit.md","reports/full-submit-2026-09-08/README.md","reports/full-submit-2026-09-08/summary.json"],"removed":[],"modified":["CLAUDE.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/advanced-image-skills-2026-09-08/initial-ui.log","reports/advanced-image-skills-2026-09-08/migrations.log","reports/advanced-image-skills-2026-09-08/ui.log","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/content-image-composition-2026-09-08/migrations.log","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":643747,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T01:39: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
|
1788889739
|
1788889777
|
0
|
1788889738
|
1788889777
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23734
|
test(governance): verify merged ASS release baseli test(governance): verify merged ASS release baseline...
|
57
|
5
|
governance.yml
|
105
|
5
|
0
|
refs/heads/main
|
75227158015ebf3524a5d6ccb791dff4d932dabf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9c9e71fc1137bff234b19026269d21d862c157ed","after":"75227158015ebf3524a5d6ccb791dff4d932dabf","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/9c9e71fc1137bff234b19026269d21d862c157ed...75227158015ebf3524a5d6ccb791dff4d932dabf","commits":[{"id":"75227158015ebf3524a5d6ccb791dff4d932dabf","message":"test(governance): verify merged ASS release baseline\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/75227158015ebf3524a5d6ccb791dff4d932dabf","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-08T16:39:04-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"50da875d8fb239c12194528bf5f2185cab24a3f9","message":"Merge branch 'main' into fix/video-post-production-acceptance\n\n# Conflicts:\n#\treports/contract-consumers.latest.json\n#\treports/dependency-audit.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/inference-acceptance.latest.json\n#\treports/material-review-concurrency-guard.latest.json\n#\treports/migrations.latest.json\n#\treports/module-boundary.latest.json\n#\treports/naming.latest.json\n#\treports/order-concurrency-guard.latest.json\n#\treports/production-acceptance.latest.json\n#\treports/production-security.latest.json\n#\treports/public-file-acceptance.latest.json\n#\treports/public-file-integration.latest.json\n#\treports/runtime-acceptance.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/script-acceptance.latest.json\n#\treports/sidecar-tests.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/toolchain.latest.json\n#\treports/ui-acceptance.latest.json\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/50da875d8fb239c12194528bf5f2185cab24a3f9","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-08T16:38:47-07:00","added":["docs/releases/2026-09-08-video-memory1.md","reports/video-render-memory-2026-09-08/backup-verification.json","reports/video-render-memory-2026-09-08/deployed-verify.json","reports/video-render-memory-2026-09-08/deployment.json","reports/video-render-memory-2026-09-08/live-render.json","reports/video-render-memory-2026-09-08/post-deployment-smoke.json","reports/video-render-memory-2026-09-08/validation.json"],"removed":[],"modified":["docs/releases/current.md","reports/video-render-memory-2026-09-08/README.md"]},{"id":"ff27996bb4e03c70615801ea899ea242e2601b28","message":"test(video-edit): accept ASS with current render fixes\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ff27996bb4e03c70615801ea899ea242e2601b28","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-08T16:38:35-07:00","added":["reports/ass-import-2026-09-08/ass-import.png","reports/ass-import-2026-09-08/browser-results.json","reports/ass-import-2026-09-08/desktop-audio.png","reports/ass-import-2026-09-08/final-gates.json","reports/ass-import-2026-09-08/mobile-audio.png","reports/ass-import-2026-09-08/output.png","reports/ass-import-2026-09-08/post-production-api.json","reports/ass-import-2026-09-08/recording.json","reports/ass-import-2026-09-08/specialty-results.json","reports/ass-import-2026-09-08/subtitle-api.json","reports/ass-import-2026-09-08/ui.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-ass-import.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/ass-import-2026-09-08/README.md","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},{"id":"8f084fc5dde854a891fef193507885495a66c409","message":"docs(qa): track combined ASS and renderer verification\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8f084fc5dde854a891fef193507885495a66c409","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-08T16:30:23-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-ass-import.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"5beb2741c337d2e1725de7e9419ae7659b974d22","message":"Merge branch 'main' into fix/video-post-production-acceptance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5beb2741c337d2e1725de7e9419ae7659b974d22","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-08T16:29:49-07:00","added":["packages/video-edit/src/render-memory.test.ts","reports/video-render-memory-2026-09-08/README.md","reports/video-render-memory-2026-09-08/v7-isolated.json"],"removed":[],"modified":["packages/video-edit/src/media.ts"]}],"total_commits":0,"head_commit":{"id":"75227158015ebf3524a5d6ccb791dff4d932dabf","message":"test(governance): verify merged ASS release baseline\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/75227158015ebf3524a5d6ccb791dff4d932dabf","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-08T16:39:04-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":703745,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T07:36: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
|
4
|
1788910752
|
1788910791
|
0
|
1788910751
|
1788910791
|
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
|
|
23380
|
test(governance): AI Agent/获客域过时 E2E 选择器对齐 canonic test(governance): AI Agent/获客域过时 E2E 选择器对齐 canonical...
|
6
|
5
|
ci.yml
|
23298
|
5
|
0
|
refs/pull/8/head
|
d48cad8c31fa6ca926c14969462ae77d82969918
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":8,"pull_request":{"id":16,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/8","number":8,"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":"test(governance): AI Agent/获客域过时 E2E 选择器对齐 canonical","body":"AI Agent 员工中心 / 获客中心域审计验收后残留 E2E 过时选择器对齐 canonical(curl/页面实证),两 spec 单跑+合并复跑 14/14 全绿,未放宽断言或 skip。\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":21,"deletions":14,"changed_files":2,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/8","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/8.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/8.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":"98fe893d6daad0b3005b8e39330274d3b76ebf26","repo_id":6,"repo":{"id":6,"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","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5472698,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":9,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-18T10:09:30+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"claude/jolly-chatelet-4e240c","ref":"claude/jolly-chatelet-4e240c","sha":"d48cad8c31fa6ca926c14969462ae77d82969918","repo_id":6,"repo":{"id":6,"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","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5472698,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":9,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-18T10:09:30+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"b7c45e487850e2c57374b6a58af2c8281c5092fb","due_date":null,"created_at":"2026-05-18T10:09:46+08:00","updated_at":"2026-05-18T10:09:46+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"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","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5472698,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":9,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-18T10:09:30+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"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
|
1
|
14
|
1779071038
|
1779073402
|
0
|
1779070186
|
1779073402
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/pull/8/head
|
1
|
Edit
Delete
|
|
23385
|
style(frontend): scoped 样式硬编码颜色令牌化收口
|
6
|
5
|
ci.yml
|
23302
|
5
|
0
|
refs/pull/9/head
|
abd9c78e81e375b307f84a5333bb2006694b6844
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":9,"pull_request":{"id":30,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/9","number":9,"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":"治理上线 ②④: 恢复 CI 硬门禁(豁免感知) + 文档对账机制 + Phase2 单测全绿","body":"## 模块治理摘要\r\n\r\n- 模块:\r\n- 战区:\r\n- lane:\r\n- 阶段:\r\n- 分类:`模块专项通过 / 工作区漂移 / 阻断`\r\n- 结论:\r\n- 战役卡:\r\n- 验收卡:\r\n- runner evidence bundle:\r\n\r\n## 验证命令\r\n\r\n| 命令 | 结果 | 备注 |\r\n| --- | --- | --- |\r\n| | | |\r\n| | | |\r\n| | | |\r\n\r\n## 审计命中\r\n\r\n- `audit:tenant`:\r\n- `audit:events`:\r\n- `audit:route-contract`:\r\n- `audit:docs-single-source`:\r\n- 如未跑全量,请说明原因:\r\n\r\n## 前端 / 页面验收\r\n\r\n- canonical 入口:\r\n- smoke / auth-scope:\r\n- alias / compat 回归:\r\n\r\n## 残余风险\r\n\r\n- 风险 1:\r\n- 风险 2:\r\n\r\n## 文档同步\r\n\r\n- [ ] `CLAUDE.md`\r\n- [ ] `AGENTS.md`\r\n- [ ] `README.md`\r\n- [ ] `GEMINI.md`\r\n- [ ] 治理经验库 / 专项记录\r\n\r\n## 口径确认\r\n\r\n- [ ] 本 PR 只宣称模块级通过,不把模块结果外推为工作区全绿\r\n- [ ] 若存在工作区漂移,已明确标记且未误记到当前模块\r\n- [ ] 若存在热修 lane,已与全域补证据 / build-out lane 隔离\r\n","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":68921,"deletions":133573,"changed_files":904,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/9","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/9.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/9.patch","mergeable":true,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"98eb23e60c1f4b50a87580aac01f3dc23dcc027f","repo_id":6,"repo":{"id":6,"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","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5485950,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":10,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-23T10:40:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"governance/launch-hardening-2026-05-18","ref":"governance/launch-hardening-2026-05-18","sha":"abd9c78e81e375b307f84a5333bb2006694b6844","repo_id":6,"repo":{"id":6,"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","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5485950,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":10,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-23T10:40:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"8d19578e5c20ba6ef6405795d9bfad0ac5946fe6","due_date":null,"created_at":"2026-05-23T10:40:52+08:00","updated_at":"2026-05-23T10:40:52+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"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","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5485950,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":10,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-23T10:40:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"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
|
16
|
1779504054
|
1779507390
|
0
|
1779504053
|
1779507390
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/pull/9/head
|
1
|
Edit
Delete
|
|
23510
|
merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 C45–C68 大波次...
|
76
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
55b9c2a0af78b6998bac3614dedc7187e37057ea
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c0ed7540c137f2a6828d24503a4c396156996f33","after":"55b9c2a0af78b6998bac3614dedc7187e37057ea","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/c0ed7540c137f2a6828d24503a4c396156996f33...55b9c2a0af78b6998bac3614dedc7187e37057ea","commits":[{"id":"55b9c2a0af78b6998bac3614dedc7187e37057ea","message":"merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 C45–C68 大波次\n\n冲突决议(24 文件):\n- reports/baseline:取本地 08-22 棘轮(458 tests / 66 files / 456 cases / 19×2 UI,为远端严格超集)\n- jobs.processor / work.module / queue.ts(fastify):取本地 C26 JobIntent 同事务链(远端 commit 后 queue.add + defaultJobOptions 兜底已被结构性取代;嫁接远端 Redis db NaN 守卫到 Fastify 侧保持双后端对等)\n- roles.service ×2:取本地 C42 审计事务版 + 嫁接远端 RoleAssignmentDto 返回类型接线(PR #3 拍板资产)\n- page.tsx:取本地 C53 会话身份(auth-identity testid,Playwright 依赖)\n- check-ui-acceptance:本地 OIDC 编排 + 远端 F8 注释并集\n- CLAUDE.md:本地 C45–C68 动态区为基底,嫁接远端 F8 行、五层 CI 假红叙事、结果裁决角色闸(G8 ⑫)、own-tests git-tracked 口径注记,快照更新为两远端对齐 c0ed754(run 32380591807 绿)\n\n编号撞号收口:两条时间线独立分配了 C25/C26/C1——远端线三个战役重编号为 C69(runner 自含 contracts 构建 + F8)/ C70(地板采集只认 git 已跟踪)/ C71(队列双注册策略显式化),经验库标题、脚本注释、测试注释同步改引;本地 C25(迟到成功)/C26(JobIntent)/C1(check-naming)编号不变。\n\n合并树证据:静态 pnpm check 全绿(Node 22,本地 dirty 工作区 2026-08-22);双后端 UI 聚合 38/38 绿(伙伴会话实跑,指纹绑定本合并内容)。合并提交自身的远端 CI 以 headSha 定位的 run 为准。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/55b9c2a0af78b6998bac3614dedc7187e37057ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:10:56-07:00","added":[],"removed":["apps/api-fastify/pnpm-lock.yaml","apps/api-nestjs/pnpm-lock.yaml","apps/web/pnpm-lock.yaml"],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/web/src/app/layout.tsx","apps/web/src/store/useAppStore.ts","docs/README.md","docs/adr/README.md","docs/governance-experience.md","docs/migration-playbook.md","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/learning.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/tenant.ts","packages/contracts/tsconfig.json","scripts/check-contract-consumers.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},{"id":"f79d0b0b172086ad5ae0954bd2f27a4e640398a1","message":"feat(security)+feat(ops)+feat(mobile): 生产安全与运维深水区大波次——权限/OIDC/RLS/凭据隔离/追踪/韧性/容量/移动端双平台\n\n- 权限与身份:C52 PermissionAssignment 细粒度权限(ALLOW/DENY 覆盖 + 迁移 CHECK)+ C53 Web OIDC PKCE 真实登录态(mock IdP + BFF code exchange + 会话复核)+ C51 生产启动 fail-closed(check:auth-startup)\n- 数据库纵深:C54 22 租户表 FORCE RLS 双策略与 ALS Prisma bridge + C55/C56 migration/API/dispatcher 三凭据分离、独立 dispatcher 入口(check:db-credentials / check:rls)\n- 可观测与韧性:C57 OTLP/W3C 四进程分布式追踪(packages/observability tracing + otel-collector/tempo 参考编排)+ C58/C63/C64/C65 依赖断链/半开黑洞/超时延迟/池饱和 14 fault 恢复(check:dependency-resilience)\n- 容量包络:C61 双 API 真实依赖探测 480 次(check:capacity)+ C66 双后端业务写链 40 主链持久积压无损排空(check:write-capacity)\n- 多实例与 Redis:C49 四 OS 进程真实竞争领取(check:multi-instance)+ C50 requirepass/非零 DB live 认证链(check:redis-auth)\n- 数字员工体验:C46 Actor 入职状态机与六步配置 + C45 health 单源 + C47 SSE 浏览器验收 + 工作台响应式设计收口(design-qa 验收记录 + PageMetricStrip + 头像资产)\n- 移动端:C59/C60 Capacitor 8 Android/iOS 双平台受版本控制工程 + 静态导出 runner(check:mobile)+ Android debug APK/emulator 验收 + 移动 runbook\n- 治理回灌:CLAUDE.md/AGENTS.md 动态区 C45–C67 战役索引、baseline 棘轮(458 tests / 127 行为对比点 / 19×2 UI 用例)、全量 reports 证据刷新\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f79d0b0b172086ad5ae0954bd2f27a4e640398a1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T07:42:56-07:00","added":["apps/api-fastify/prisma/migrations/20260826000000_actor_lifecycle/migration.sql","apps/api-fastify/prisma/migrations/20260827000000_permission_assignments/migration.sql","apps/api-fastify/prisma/migrations/20260828000000_tenant_rls/migration.sql","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/modules/permissions.service.ts","apps/api-fastify/src/plugins/rls-context.ts","apps/api-fastify/src/plugins/rls-prisma.ts","apps/api-fastify/src/routes/permissions.ts","apps/api-fastify/test/auth.permissions.acceptance.test.ts","apps/api-fastify/test/rls.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260826000000_actor_lifecycle/migration.sql","apps/api-nestjs/prisma/migrations/20260827000000_permission_assignments/migration.sql","apps/api-nestjs/prisma/migrations/20260828000000_tenant_rls/migration.sql","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/permissions/permissions.controller.ts","apps/api-nestjs/src/permissions/permissions.module.ts","apps/api-nestjs/src/permissions/permissions.service.ts","apps/api-nestjs/src/prisma/rls-context.ts","apps/api-nestjs/src/prisma/rls-prisma.ts","apps/api-nestjs/test/auth.permissions.acceptance.test.ts","apps/api-nestjs/test/rls.acceptance.test.ts","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/debug/AndroidManifest.xml","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/highpraise/digitalemployeeos/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/public/assets/digital-employees/operations-specialist.png","apps/web/src/app/api/auth/config/route.ts","apps/web/src/app/api/auth/exchange/route.ts","apps/web/src/components/workbench/PageMetricStrip.tsx","apps/web/src/features/actors/api/actors-api.ts","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx","apps/web/src/features/actors/hooks/use-actor-mutations.ts","apps/web/src/features/actors/hooks/use-actors.ts","apps/web/src/features/auth/api/auth-api.ts","apps/web/src/features/auth/components/AuthGate.tsx","apps/web/src/features/auth/lib/oidc.ts","apps/web/src/features/permissions/api/permissions-api.ts","apps/web/src/features/permissions/components/PermissionAssignmentsPanel.tsx","apps/web/src/features/permissions/hooks/use-permissions.ts","apps/web/src/store/useAuthStore.ts","deploy/production/otel-collector.yml","deploy/production/tempo.yml","design-qa.md","docs/operations/mobile-android-runbook.md","packages/contracts/src/actor.test.ts","packages/contracts/src/health.test.ts","packages/contracts/src/health.ts","packages/contracts/src/rls.test.ts","packages/contracts/src/rls.ts","packages/observability/src/http-route.ts","packages/observability/src/tracing.test.ts","packages/observability/src/tracing.ts","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/mobile-android.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/redis-auth-live.latest.json","reports/rls.latest.json","reports/trace-backend.latest.json","reports/tracing.latest.json","reports/write-capacity.latest.json","scripts/build-mobile-export.mjs","scripts/check-auth-startup.mjs","scripts/check-capacity-envelope.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dependency-resilience.mjs","scripts/check-mobile-export.mjs","scripts/check-multi-instance.mjs","scripts/check-redis-auth-live.mjs","scripts/check-rls.mjs","scripts/check-trace-backend.mjs","scripts/check-tracing.mjs","scripts/check-write-capacity.mjs","scripts/lib/db-runtime-role.mjs","scripts/mock-oidc-idp.mjs","scripts/provision-runtime-role.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/actors.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/src/plugins/operations.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/trigger-engine.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/roles.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/scripts/behavior-parity-snapshot.mjs","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.service.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/operations/operations.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/roles/roles.controller.ts","apps/api-nestjs/src/roles/roles.module.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/tasks.controller.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/src/app/page.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/RoleAssignmentsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","apps/web/src/store/realtime.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/prometheus.yml","docs/adr/0009-dual-backend-governance-parity.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","docs/operations/production-runbook.md","docs/standards/database-standard.md","governance.registry.json","governance.registry.schema.json","output/pdf/任务驱动的数字员工执行闭环.pdf","package.json","packages/contracts/src/actor.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/realtime.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/operations.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/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-behavior.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-operations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/scan-ignore.mjs","tmp/pdfs/generate_task_loop_pdf.py"]},{"id":"4f2e17b9c3aa4745c5acebadabdd979e0a7ee7f4","message":"Harden governance runtime and acceptance coverage\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/4f2e17b9c3aa4745c5acebadabdd979e0a7ee7f4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-21T08:36:22-07:00","added":[".dockerignore","apps/api-fastify/prisma/migrations/20260825030000_skill_activation/migration.sql","apps/api-fastify/src/plugins/operations.ts","apps/api-nestjs/prisma/migrations/20260825030000_skill_activation/migration.sql","apps/api-nestjs/scripts/behavior-parity-snapshot.mjs","apps/api-nestjs/src/common/api-http-exception.filter.ts","apps/api-nestjs/src/operations/operations.module.ts","apps/web/src/features/skills/api/skills-api.ts","apps/web/src/features/skills/components/SkillManagementPanel.tsx","apps/web/src/features/skills/hooks/use-skills.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alertmanager.yml","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/nginx.conf.template","deploy/production/prometheus.yml","docs/operations/production-runbook.md","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","packages/observability/tsconfig.json","packages/skill-runtime/package.json","packages/skill-runtime/src/implementations/analysis-v1.ts","packages/skill-runtime/src/implementations/customer-research-v1.ts","packages/skill-runtime/src/implementations/knowledge-synthesis-v1-1.ts","packages/skill-runtime/src/implementations/knowledge-synthesis-v1-2.ts","packages/skill-runtime/src/implementations/reporting-v1.ts","packages/skill-runtime/src/implementations/reporting-v2.ts","packages/skill-runtime/src/index.test.ts","packages/skill-runtime/src/index.ts","packages/skill-runtime/src/prompt.ts","packages/skill-runtime/src/types.ts","packages/skill-runtime/tsconfig.json","reports/dual-backend-behavior.latest.json","reports/operations.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","scripts/check-dual-backend-behavior.mjs","scripts/check-operations.mjs","scripts/check-ui-all.mjs","scripts/ops/backup.sh","scripts/ops/paging-relay.mjs","scripts/ops/restore.sh","scripts/replay-dead-letter.mjs","tmp/deploy-probe-nestjs/.env.example","tmp/deploy-probe-nestjs/docker-compose.yml","tmp/deploy-probe-nestjs/nest-cli.json","tmp/deploy-probe-nestjs/package.json","tmp/deploy-probe-nestjs/prisma/migrations/20260818000000_init/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260819000000_outbox_replay_cursor/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260820000000_work_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260821000000_learning_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260822000000_trigger_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260823000000_outcome_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260824000000_attribution_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825000000_role_assignment/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825010000_workgraph_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825020000_job_intent/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825030000_skill_activation/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/migration_lock.toml","tmp/deploy-probe-nestjs/prisma/schema.prisma","tmp/deploy-probe-nestjs/prisma/seed.ts","tmp/deploy-probe-nestjs/scripts/behavior-parity-snapshot.mjs","tmp/deploy-probe-nestjs/src/actors/actor-events.service.ts","tmp/deploy-probe-nestjs/src/actors/actors.controller.ts","tmp/deploy-probe-nestjs/src/actors/actors.module.ts","tmp/deploy-probe-nestjs/src/actors/actors.service.ts","tmp/deploy-probe-nestjs/src/app.module.ts","tmp/deploy-probe-nestjs/src/common/api-http-exception.filter.ts","tmp/deploy-probe-nestjs/src/common/envelope.ts","tmp/deploy-probe-nestjs/src/common/tenant.decorator.ts","tmp/deploy-probe-nestjs/src/common/zod-validation.pipe.ts","tmp/deploy-probe-nestjs/src/create-app.ts","tmp/deploy-probe-nestjs/src/events/connection-registry.service.ts","tmp/deploy-probe-nestjs/src/events/event-bus.service.ts","tmp/deploy-probe-nestjs/src/events/events.gateway.ts","tmp/deploy-probe-nestjs/src/events/events.module.ts","tmp/deploy-probe-nestjs/src/events/fanout.service.ts","tmp/deploy-probe-nestjs/src/events/outbox-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/events/realtime-stats.controller.ts","tmp/deploy-probe-nestjs/src/events/replay.service.ts","tmp/deploy-probe-nestjs/src/health/health.controller.ts","tmp/deploy-probe-nestjs/src/health/health.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.service.ts","tmp/deploy-probe-nestjs/src/main.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.controller.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.module.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.service.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.module.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.service.ts","tmp/deploy-probe-nestjs/src/queue/job-intent-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/queue/jobs.controller.ts","tmp/deploy-probe-nestjs/src/queue/jobs.processor.ts","tmp/deploy-probe-nestjs/src/queue/queue.module.ts","tmp/deploy-probe-nestjs/src/queue/queue.types.ts","tmp/deploy-probe-nestjs/src/redis/redis.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.controller.ts","tmp/deploy-probe-nestjs/src/roles/roles.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.service.ts","tmp/deploy-probe-nestjs/src/sse/sse.controller.ts","tmp/deploy-probe-nestjs/src/sse/sse.module.ts","tmp/deploy-probe-nestjs/src/statemachine/index.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.engine.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.types.ts","tmp/deploy-probe-nestjs/src/triggers/trigger-engine.service.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.controller.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.module.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.service.ts","tmp/deploy-probe-nestjs/src/users/users.controller.ts","tmp/deploy-probe-nestjs/src/users/users.module.ts","tmp/deploy-probe-nestjs/src/users/users.service.ts","tmp/deploy-probe-nestjs/src/work/grants.service.ts","tmp/deploy-probe-nestjs/src/work/projects.controller.ts","tmp/deploy-probe-nestjs/src/work/projects.service.ts","tmp/deploy-probe-nestjs/src/work/runtimes.service.ts","tmp/deploy-probe-nestjs/src/work/skills.controller.ts","tmp/deploy-probe-nestjs/src/work/skills.service.ts","tmp/deploy-probe-nestjs/src/work/task-events.service.ts","tmp/deploy-probe-nestjs/src/work/tasks.controller.ts","tmp/deploy-probe-nestjs/src/work/tasks.service.ts","tmp/deploy-probe-nestjs/src/work/work.module.ts","tmp/deploy-probe-nestjs/test/actor-events.integration.test.ts","tmp/deploy-probe-nestjs/test/auth.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.jwks.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.roles.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.rs256.acceptance.test.ts","tmp/deploy-probe-nestjs/test/dead-letters.integration.test.ts","tmp/deploy-probe-nestjs/test/http.acceptance.test.ts","tmp/deploy-probe-nestjs/test/job-intent.dispatcher.test.ts","tmp/deploy-probe-nestjs/test/learning.concurrency.test.ts","tmp/deploy-probe-nestjs/test/llm.acceptance.test.ts","tmp/deploy-probe-nestjs/test/llm.anthropic.acceptance.test.ts","tmp/deploy-probe-nestjs/test/outbox.concurrency.test.ts","tmp/deploy-probe-nestjs/test/outbox.deadletter.test.ts","tmp/deploy-probe-nestjs/test/outcomes.integration.test.ts","tmp/deploy-probe-nestjs/test/realtime.command.test.ts","tmp/deploy-probe-nestjs/test/realtime.replay.test.ts","tmp/deploy-probe-nestjs/test/realtime.stats.test.ts","tmp/deploy-probe-nestjs/test/realtime.subscription.test.ts","tmp/deploy-probe-nestjs/test/realtime.tenant.test.ts","tmp/deploy-probe-nestjs/test/task-events.integration.test.ts","tmp/deploy-probe-nestjs/test/triggers.integration.test.ts","tmp/deploy-probe-nestjs/test/work.integration.test.ts","tmp/deploy-probe-nestjs/tsconfig.build.json","tmp/deploy-probe-nestjs/tsconfig.json","tmp/deploy-probe-nestjs/vitest.config.ts","tmp/ops-config/.env.production","tmp/ops-config/metrics-token.txt","tmp/pdfs/generate_task_loop_pdf.py","tmp/pdfs/task-loop-qa-v2/page-01.png","tmp/pdfs/task-loop-qa-v2/page-02.png","tmp/pdfs/task-loop-qa-v2/page-03.png","tmp/pdfs/task-loop-qa-v2/page-04.png","tmp/pdfs/task-loop-qa-v2/page-05.png","tmp/pdfs/task-loop-qa-v2/page-06.png","tmp/pdfs/task-loop-qa-v2/page-07.png","tmp/pdfs/task-loop-qa-v2/page-08.png","tmp/pdfs/task-loop-qa-v2/page-09.png","tmp/pdfs/task-loop-qa-v2/page-10.png","tmp/pdfs/task-loop-qa-v2/page-11.png","tmp/pdfs/task-loop-qa-v2/page-12.png","tmp/pdfs/task-loop-qa-v2/page-13.png","tmp/pdfs/task-loop-qa-v2/page-14.png","tmp/pdfs/task-loop-qa-v2/page-15.png","tmp/pdfs/task-loop-qa-v3/contact-sheet.png","tmp/pdfs/task-loop-qa-v3/delivery-01.png","tmp/pdfs/task-loop-qa-v3/delivery-02.png","tmp/pdfs/task-loop-qa-v3/delivery-03.png","tmp/pdfs/task-loop-qa-v3/delivery-04.png","tmp/pdfs/task-loop-qa-v3/delivery-05.png","tmp/pdfs/task-loop-qa-v3/delivery-06.png","tmp/pdfs/task-loop-qa-v3/delivery-07.png","tmp/pdfs/task-loop-qa-v3/delivery-08.png","tmp/pdfs/task-loop-qa-v3/delivery-09.png","tmp/pdfs/task-loop-qa-v3/delivery-10.png","tmp/pdfs/task-loop-qa-v3/delivery-11.png","tmp/pdfs/task-loop-qa-v3/delivery-12.png","tmp/pdfs/task-loop-qa-v3/delivery-13.png","tmp/pdfs/task-loop-qa-v3/delivery-14.png","tmp/pdfs/task-loop-qa-v3/delivery-15.png","tmp/pdfs/task-loop-qa-v3/delivery-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-01.png","tmp/pdfs/task-loop-qa-v3/final-02.png","tmp/pdfs/task-loop-qa-v3/final-03.png","tmp/pdfs/task-loop-qa-v3/final-04.png","tmp/pdfs/task-loop-qa-v3/final-05.png","tmp/pdfs/task-loop-qa-v3/final-06.png","tmp/pdfs/task-loop-qa-v3/final-07.png","tmp/pdfs/task-loop-qa-v3/final-08.png","tmp/pdfs/task-loop-qa-v3/final-09.png","tmp/pdfs/task-loop-qa-v3/final-10.png","tmp/pdfs/task-loop-qa-v3/final-11.png","tmp/pdfs/task-loop-qa-v3/final-12.png","tmp/pdfs/task-loop-qa-v3/final-13.png","tmp/pdfs/task-loop-qa-v3/final-14.png","tmp/pdfs/task-loop-qa-v3/final-15.png","tmp/pdfs/task-loop-qa-v3/final-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-page-13.png","tmp/pdfs/task-loop-qa-v3/page-01.png","tmp/pdfs/task-loop-qa-v3/page-02.png","tmp/pdfs/task-loop-qa-v3/page-03.png","tmp/pdfs/task-loop-qa-v3/page-04.png","tmp/pdfs/task-loop-qa-v3/page-05.png","tmp/pdfs/task-loop-qa-v3/page-06.png","tmp/pdfs/task-loop-qa-v3/page-07.png","tmp/pdfs/task-loop-qa-v3/page-08.png","tmp/pdfs/task-loop-qa-v3/page-09.png","tmp/pdfs/task-loop-qa-v3/page-10.png","tmp/pdfs/task-loop-qa-v3/page-11.png","tmp/pdfs/task-loop-qa-v3/page-12.png","tmp/pdfs/task-loop-qa-v3/page-13.png","tmp/pdfs/task-loop-qa-v3/page-14.png","tmp/pdfs/task-loop-qa-v3/page-15.png","tmp/pdfs/task-loop-qa/page-01.png","tmp/pdfs/task-loop-qa/page-02.png","tmp/pdfs/task-loop-qa/page-03.png","tmp/pdfs/task-loop-qa/page-04.png","tmp/pdfs/task-loop-qa/page-05.png","tmp/pdfs/task-loop-qa/page-06.png","tmp/pdfs/task-loop-qa/page-07.png","tmp/pdfs/task-loop-qa/page-08.png","tmp/pdfs/task-loop-qa/page-09.png","tmp/pdfs/task-loop-qa/page-10.png","tmp/pdfs/task-loop-qa/page-11.png","tmp/pdfs/task-loop-qa/page-12.png","tmp/pdfs/task-loop-qa/page-13.png"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/skills.service.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/trigger-engine.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/roles.ts","apps/api-fastify/src/routes/skills.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/dead-letters.integration.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/roles/roles.controller.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/skills.controller.ts","apps/api-nestjs/src/work/skills.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/dead-letters.integration.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","docs/adr/0009-dual-backend-governance-parity.md","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/llm-execution-blueprint.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","governance.registry.schema.json","output/pdf/任务驱动的数字员工执行闭环.pdf","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/learning.test.ts","packages/contracts/src/learning.ts","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/skill.test.ts","packages/contracts/src/skill.ts","packages/contracts/src/tenant.ts","pnpm-lock.yaml","reports/agent-adapters.latest.json","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","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},{"id":"f6ea2efbccafe9df16c29fd2f3ee80cedd159338","message":"feat: 完善可靠作业交接与产品手册\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f6ea2efbccafe9df16c29fd2f3ee80cedd159338","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T06:47:23-07:00","added":["apps/api-fastify/prisma/migrations/20260825020000_job_intent/migration.sql","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-nestjs/prisma/migrations/20260825020000_job_intent/migration.sql","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","output/pdf/任务驱动的数字员工执行闭环.pdf","outputs/Digital_Employee_OS_产品使用手册_V1.0.docx","outputs/Digital_Employee_OS_产品说明书_V1.0.docx","work/product-manual/build_user_manual.py","work/product-manual/render-final/page-1.png","work/product-manual/render-final/page-10.png","work/product-manual/render-final/page-11.png","work/product-manual/render-final/page-12.png","work/product-manual/render-final/page-13.png","work/product-manual/render-final/page-14.png","work/product-manual/render-final/page-15.png","work/product-manual/render-final/page-16.png","work/product-manual/render-final/page-17.png","work/product-manual/render-final/page-18.png","work/product-manual/render-final/page-19.png","work/product-manual/render-final/page-2.png","work/product-manual/render-final/page-20.png","work/product-manual/render-final/page-21.png","work/product-manual/render-final/page-22.png","work/product-manual/render-final/page-23.png","work/product-manual/render-final/page-24.png","work/product-manual/render-final/page-25.png","work/product-manual/render-final/page-26.png","work/product-manual/render-final/page-3.png","work/product-manual/render-final/page-4.png","work/product-manual/render-final/page-5.png","work/product-manual/render-final/page-6.png","work/product-manual/render-final/page-7.png","work/product-manual/render-final/page-8.png","work/product-manual/render-final/page-9.png","work/product-manual/render-v1/Digital_Employee_OS_产品使用手册_V1.0.pdf","work/product-manual/render-v1/page-1.png","work/product-manual/render-v1/page-10.png","work/product-manual/render-v1/page-11.png","work/product-manual/render-v1/page-12.png","work/product-manual/render-v1/page-13.png","work/product-manual/render-v1/page-14.png","work/product-manual/render-v1/page-15.png","work/product-manual/render-v1/page-16.png","work/product-manual/render-v1/page-17.png","work/product-manual/render-v1/page-18.png","work/product-manual/render-v1/page-19.png","work/product-manual/render-v1/page-2.png","work/product-manual/render-v1/page-20.png","work/product-manual/render-v1/page-21.png","work/product-manual/render-v1/page-22.png","work/product-manual/render-v1/page-23.png","work/product-manual/render-v1/page-24.png","work/product-manual/render-v1/page-25.png","work/product-manual/render-v1/page-26.png","work/product-manual/render-v1/page-27.png","work/product-manual/render-v1/page-28.png","work/product-manual/render-v1/page-29.png","work/product-manual/render-v1/page-3.png","work/product-manual/render-v1/page-30.png","work/product-manual/render-v1/page-31.png","work/product-manual/render-v1/page-4.png","work/product-manual/render-v1/page-5.png","work/product-manual/render-v1/page-6.png","work/product-manual/render-v1/page-7.png","work/product-manual/render-v1/page-8.png","work/product-manual/render-v1/page-9.png","work/product-manual/render-v2/Digital_Employee_OS_产品使用手册_V1.0.pdf","work/product-manual/render-v2/page-1.png","work/product-manual/render-v2/page-10.png","work/product-manual/render-v2/page-11.png","work/product-manual/render-v2/page-12.png","work/product-manual/render-v2/page-13.png","work/product-manual/render-v2/page-14.png","work/product-manual/render-v2/page-15.png","work/product-manual/render-v2/page-16.png","work/product-manual/render-v2/page-17.png","work/product-manual/render-v2/page-18.png","work/product-manual/render-v2/page-19.png","work/product-manual/render-v2/page-2.png","work/product-manual/render-v2/page-20.png","work/product-manual/render-v2/page-21.png","work/product-manual/render-v2/page-22.png","work/product-manual/render-v2/page-23.png","work/product-manual/render-v2/page-24.png","work/product-manual/render-v2/page-25.png","work/product-manual/render-v2/page-3.png","work/product-manual/render-v2/page-4.png","work/product-manual/render-v2/page-5.png","work/product-manual/render-v2/page-6.png","work/product-manual/render-v2/page-7.png","work/product-manual/render-v2/page-8.png","work/product-manual/render-v2/page-9.png","work/product-manual/render-v3/page-1.png","work/product-manual/render-v3/page-10.png","work/product-manual/render-v3/page-11.png","work/product-manual/render-v3/page-12.png","work/product-manual/render-v3/page-13.png","work/product-manual/render-v3/page-14.png","work/product-manual/render-v3/page-15.png","work/product-manual/render-v3/page-16.png","work/product-manual/render-v3/page-17.png","work/product-manual/render-v3/page-18.png","work/product-manual/render-v3/page-19.png","work/product-manual/render-v3/page-2.png","work/product-manual/render-v3/page-20.png","work/product-manual/render-v3/page-21.png","work/product-manual/render-v3/page-22.png","work/product-manual/render-v3/page-23.png","work/product-manual/render-v3/page-24.png","work/product-manual/render-v3/page-25.png","work/product-manual/render-v3/page-26.png","work/product-manual/render-v3/page-27.png","work/product-manual/render-v3/page-28.png","work/product-manual/render-v3/page-29.png","work/product-manual/render-v3/page-3.png","work/product-manual/render-v3/page-4.png","work/product-manual/render-v3/page-5.png","work/product-manual/render-v3/page-6.png","work/product-manual/render-v3/page-7.png","work/product-manual/render-v3/page-8.png","work/product-manual/render-v3/page-9.png","work/product-manual/render-v4/page-1.png","work/product-manual/render-v4/page-10.png","work/product-manual/render-v4/page-11.png","work/product-manual/render-v4/page-12.png","work/product-manual/render-v4/page-13.png","work/product-manual/render-v4/page-14.png","work/product-manual/render-v4/page-15.png","work/product-manual/render-v4/page-16.png","work/product-manual/render-v4/page-17.png","work/product-manual/render-v4/page-18.png","work/product-manual/render-v4/page-19.png","work/product-manual/render-v4/page-2.png","work/product-manual/render-v4/page-20.png","work/product-manual/render-v4/page-21.png","work/product-manual/render-v4/page-22.png","work/product-manual/render-v4/page-23.png","work/product-manual/render-v4/page-24.png","work/product-manual/render-v4/page-25.png","work/product-manual/render-v4/page-26.png","work/product-manual/render-v4/page-27.png","work/product-manual/render-v4/page-28.png","work/product-manual/render-v4/page-3.png","work/product-manual/render-v4/page-4.png","work/product-manual/render-v4/page-5.png","work/product-manual/render-v4/page-6.png","work/product-manual/render-v4/page-7.png","work/product-manual/render-v4/page-8.png","work/product-manual/render-v4/page-9.png","work/product-manual/render-v5/page-1.png","work/product-manual/render-v5/page-10.png","work/product-manual/render-v5/page-11.png","work/product-manual/render-v5/page-12.png","work/product-manual/render-v5/page-13.png","work/product-manual/render-v5/page-14.png","work/product-manual/render-v5/page-15.png","work/product-manual/render-v5/page-16.png","work/product-manual/render-v5/page-17.png","work/product-manual/render-v5/page-18.png","work/product-manual/render-v5/page-19.png","work/product-manual/render-v5/page-2.png","work/product-manual/render-v5/page-20.png","work/product-manual/render-v5/page-21.png","work/product-manual/render-v5/page-22.png","work/product-manual/render-v5/page-23.png","work/product-manual/render-v5/page-24.png","work/product-manual/render-v5/page-25.png","work/product-manual/render-v5/page-26.png","work/product-manual/render-v5/page-3.png","work/product-manual/render-v5/page-4.png","work/product-manual/render-v5/page-5.png","work/product-manual/render-v5/page-6.png","work/product-manual/render-v5/page-7.png","work/product-manual/render-v5/page-8.png","work/product-manual/render-v5/page-9.png","work/product-manual/screenshots/01-workbench.png","work/product-manual/screenshots/02-team.png","work/product-manual/screenshots/03-automation.png","work/product-manual/screenshots/04-system.png","work/product-manual/screenshots/05-task-detail-crop.png","work/product-manual/screenshots/05-task-detail.png","work/product-manual/screenshots/06-execution-records-crop.png","work/product-manual/screenshots/06-execution-records.png","work/product-manual/screenshots/07-task-create.png","work/product-manual/screenshots/08-task-more-options.png","work/product-manual/screenshots/09-mobile-workbench.png","work/product_manual/__pycache__/build_product_manual.cpython-312.pyc","work/product_manual/build_product_manual.py","work/product_manual/figure_closed_loop.png","work/product_manual/figure_product_ia.png","work/product_manual/figure_technical_layers.png","work/product_manual/qa_v1/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v1/page-1.png","work/product_manual/qa_v1/page-10.png","work/product_manual/qa_v1/page-11.png","work/product_manual/qa_v1/page-12.png","work/product_manual/qa_v1/page-13.png","work/product_manual/qa_v1/page-14.png","work/product_manual/qa_v1/page-15.png","work/product_manual/qa_v1/page-16.png","work/product_manual/qa_v1/page-17.png","work/product_manual/qa_v1/page-18.png","work/product_manual/qa_v1/page-19.png","work/product_manual/qa_v1/page-2.png","work/product_manual/qa_v1/page-3.png","work/product_manual/qa_v1/page-4.png","work/product_manual/qa_v1/page-5.png","work/product_manual/qa_v1/page-6.png","work/product_manual/qa_v1/page-7.png","work/product_manual/qa_v1/page-8.png","work/product_manual/qa_v1/page-9.png","work/product_manual/qa_v10/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v10/page-1.png","work/product_manual/qa_v10/page-10.png","work/product_manual/qa_v10/page-11.png","work/product_manual/qa_v10/page-12.png","work/product_manual/qa_v10/page-13.png","work/product_manual/qa_v10/page-14.png","work/product_manual/qa_v10/page-15.png","work/product_manual/qa_v10/page-16.png","work/product_manual/qa_v10/page-17.png","work/product_manual/qa_v10/page-18.png","work/product_manual/qa_v10/page-19.png","work/product_manual/qa_v10/page-2.png","work/product_manual/qa_v10/page-20.png","work/product_manual/qa_v10/page-21.png","work/product_manual/qa_v10/page-22.png","work/product_manual/qa_v10/page-23.png","work/product_manual/qa_v10/page-24.png","work/product_manual/qa_v10/page-25.png","work/product_manual/qa_v10/page-26.png","work/product_manual/qa_v10/page-27.png","work/product_manual/qa_v10/page-28.png","work/product_manual/qa_v10/page-3.png","work/product_manual/qa_v10/page-4.png","work/product_manual/qa_v10/page-5.png","work/product_manual/qa_v10/page-6.png","work/product_manual/qa_v10/page-7.png","work/product_manual/qa_v10/page-8.png","work/product_manual/qa_v10/page-9.png","work/product_manual/qa_v11/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v11/a11y.json","work/product_manual/qa_v11/page-1.png","work/product_manual/qa_v11/page-10.png","work/product_manual/qa_v11/page-11.png","work/product_manual/qa_v11/page-12.png","work/product_manual/qa_v11/page-13.png","work/product_manual/qa_v11/page-14.png","work/product_manual/qa_v11/page-15.png","work/product_manual/qa_v11/page-16.png","work/product_manual/qa_v11/page-17.png","work/product_manual/qa_v11/page-18.png","work/product_manual/qa_v11/page-19.png","work/product_manual/qa_v11/page-2.png","work/product_manual/qa_v11/page-20.png","work/product_manual/qa_v11/page-21.png","work/product_manual/qa_v11/page-22.png","work/product_manual/qa_v11/page-23.png","work/product_manual/qa_v11/page-24.png","work/product_manual/qa_v11/page-25.png","work/product_manual/qa_v11/page-26.png","work/product_manual/qa_v11/page-27.png","work/product_manual/qa_v11/page-28.png","work/product_manual/qa_v11/page-29.png","work/product_manual/qa_v11/page-3.png","work/product_manual/qa_v11/page-4.png","work/product_manual/qa_v11/page-5.png","work/product_manual/qa_v11/page-6.png","work/product_manual/qa_v11/page-7.png","work/product_manual/qa_v11/page-8.png","work/product_manual/qa_v11/page-9.png","work/product_manual/qa_v11/style-lint.json","work/product_manual/qa_v2/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v2/page-1.png","work/product_manual/qa_v2/page-10.png","work/product_manual/qa_v2/page-11.png","work/product_manual/qa_v2/page-12.png","work/product_manual/qa_v2/page-13.png","work/product_manual/qa_v2/page-14.png","work/product_manual/qa_v2/page-15.png","work/product_manual/qa_v2/page-16.png","work/product_manual/qa_v2/page-17.png","work/product_manual/qa_v2/page-18.png","work/product_manual/qa_v2/page-19.png","work/product_manual/qa_v2/page-2.png","work/product_manual/qa_v2/page-3.png","work/product_manual/qa_v2/page-4.png","work/product_manual/qa_v2/page-5.png","work/product_manual/qa_v2/page-6.png","work/product_manual/qa_v2/page-7.png","work/product_manual/qa_v2/page-8.png","work/product_manual/qa_v2/page-9.png","work/product_manual/qa_v3/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v3/page-1.png","work/product_manual/qa_v3/page-10.png","work/product_manual/qa_v3/page-11.png","work/product_manual/qa_v3/page-12.png","work/product_manual/qa_v3/page-13.png","work/product_manual/qa_v3/page-14.png","work/product_manual/qa_v3/page-15.png","work/product_manual/qa_v3/page-16.png","work/product_manual/qa_v3/page-17.png","work/product_manual/qa_v3/page-18.png","work/product_manual/qa_v3/page-19.png","work/product_manual/qa_v3/page-2.png","work/product_manual/qa_v3/page-3.png","work/product_manual/qa_v3/page-4.png","work/product_manual/qa_v3/page-5.png","work/product_manual/qa_v3/page-6.png","work/product_manual/qa_v3/page-7.png","work/product_manual/qa_v3/page-8.png","work/product_manual/qa_v3/page-9.png","work/product_manual/qa_v4/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v4/page-1.png","work/product_manual/qa_v4/page-10.png","work/product_manual/qa_v4/page-11.png","work/product_manual/qa_v4/page-12.png","work/product_manual/qa_v4/page-13.png","work/product_manual/qa_v4/page-14.png","work/product_manual/qa_v4/page-15.png","work/product_manual/qa_v4/page-16.png","work/product_manual/qa_v4/page-17.png","work/product_manual/qa_v4/page-18.png","work/product_manual/qa_v4/page-19.png","work/product_manual/qa_v4/page-2.png","work/product_manual/qa_v4/page-3.png","work/product_manual/qa_v4/page-4.png","work/product_manual/qa_v4/page-5.png","work/product_manual/qa_v4/page-6.png","work/product_manual/qa_v4/page-7.png","work/product_manual/qa_v4/page-8.png","work/product_manual/qa_v4/page-9.png","work/product_manual/qa_v5/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v5/page-1.png","work/product_manual/qa_v5/page-10.png","work/product_manual/qa_v5/page-11.png","work/product_manual/qa_v5/page-12.png","work/product_manual/qa_v5/page-13.png","work/product_manual/qa_v5/page-14.png","work/product_manual/qa_v5/page-15.png","work/product_manual/qa_v5/page-16.png","work/product_manual/qa_v5/page-17.png","work/product_manual/qa_v5/page-18.png","work/product_manual/qa_v5/page-19.png","work/product_manual/qa_v5/page-2.png","work/product_manual/qa_v5/page-20.png","work/product_manual/qa_v5/page-21.png","work/product_manual/qa_v5/page-22.png","work/product_manual/qa_v5/page-23.png","work/product_manual/qa_v5/page-24.png","work/product_manual/qa_v5/page-25.png","work/product_manual/qa_v5/page-26.png","work/product_manual/qa_v5/page-27.png","work/product_manual/qa_v5/page-28.png","work/product_manual/qa_v5/page-3.png","work/product_manual/qa_v5/page-4.png","work/product_manual/qa_v5/page-5.png","work/product_manual/qa_v5/page-6.png","work/product_manual/qa_v5/page-7.png","work/product_manual/qa_v5/page-8.png","work/product_manual/qa_v5/page-9.png","work/product_manual/qa_v6/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v6/page-1.png","work/product_manual/qa_v6/page-10.png","work/product_manual/qa_v6/page-11.png","work/product_manual/qa_v6/page-12.png","work/product_manual/qa_v6/page-13.png","work/product_manual/qa_v6/page-14.png","work/product_manual/qa_v6/page-15.png","work/product_manual/qa_v6/page-16.png","work/product_manual/qa_v6/page-17.png","work/product_manual/qa_v6/page-18.png","work/product_manual/qa_v6/page-19.png","work/product_manual/qa_v6/page-2.png","work/product_manual/qa_v6/page-20.png","work/product_manual/qa_v6/page-21.png","work/product_manual/qa_v6/page-22.png","work/product_manual/qa_v6/page-23.png","work/product_manual/qa_v6/page-24.png","work/product_manual/qa_v6/page-25.png","work/product_manual/qa_v6/page-26.png","work/product_manual/qa_v6/page-27.png","work/product_manual/qa_v6/page-28.png","work/product_manual/qa_v6/page-3.png","work/product_manual/qa_v6/page-4.png","work/product_manual/qa_v6/page-5.png","work/product_manual/qa_v6/page-6.png","work/product_manual/qa_v6/page-7.png","work/product_manual/qa_v6/page-8.png","work/product_manual/qa_v6/page-9.png","work/product_manual/qa_v7/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v7/page-1.png","work/product_manual/qa_v7/page-10.png","work/product_manual/qa_v7/page-11.png","work/product_manual/qa_v7/page-12.png","work/product_manual/qa_v7/page-13.png","work/product_manual/qa_v7/page-14.png","work/product_manual/qa_v7/page-15.png","work/product_manual/qa_v7/page-16.png","work/product_manual/qa_v7/page-17.png","work/product_manual/qa_v7/page-18.png","work/product_manual/qa_v7/page-19.png","work/product_manual/qa_v7/page-2.png","work/product_manual/qa_v7/page-20.png","work/product_manual/qa_v7/page-21.png","work/product_manual/qa_v7/page-22.png","work/product_manual/qa_v7/page-23.png","work/product_manual/qa_v7/page-24.png","work/product_manual/qa_v7/page-25.png","work/product_manual/qa_v7/page-26.png","work/product_manual/qa_v7/page-27.png","work/product_manual/qa_v7/page-28.png","work/product_manual/qa_v7/page-3.png","work/product_manual/qa_v7/page-4.png","work/product_manual/qa_v7/page-5.png","work/product_manual/qa_v7/page-6.png","work/product_manual/qa_v7/page-7.png","work/product_manual/qa_v7/page-8.png","work/product_manual/qa_v7/page-9.png","work/product_manual/qa_v8/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v8/page-1.png","work/product_manual/qa_v8/page-10.png","work/product_manual/qa_v8/page-11.png","work/product_manual/qa_v8/page-12.png","work/product_manual/qa_v8/page-13.png","work/product_manual/qa_v8/page-14.png","work/product_manual/qa_v8/page-15.png","work/product_manual/qa_v8/page-16.png","work/product_manual/qa_v8/page-17.png","work/product_manual/qa_v8/page-18.png","work/product_manual/qa_v8/page-19.png","work/product_manual/qa_v8/page-2.png","work/product_manual/qa_v8/page-20.png","work/product_manual/qa_v8/page-21.png","work/product_manual/qa_v8/page-22.png","work/product_manual/qa_v8/page-23.png","work/product_manual/qa_v8/page-24.png","work/product_manual/qa_v8/page-25.png","work/product_manual/qa_v8/page-26.png","work/product_manual/qa_v8/page-27.png","work/product_manual/qa_v8/page-28.png","work/product_manual/qa_v8/page-3.png","work/product_manual/qa_v8/page-4.png","work/product_manual/qa_v8/page-5.png","work/product_manual/qa_v8/page-6.png","work/product_manual/qa_v8/page-7.png","work/product_manual/qa_v8/page-8.png","work/product_manual/qa_v8/page-9.png","work/product_manual/qa_v9/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v9/page-1.png","work/product_manual/qa_v9/page-10.png","work/product_manual/qa_v9/page-11.png","work/product_manual/qa_v9/page-12.png","work/product_manual/qa_v9/page-13.png","work/product_manual/qa_v9/page-14.png","work/product_manual/qa_v9/page-15.png","work/product_manual/qa_v9/page-16.png","work/product_manual/qa_v9/page-17.png","work/product_manual/qa_v9/page-18.png","work/product_manual/qa_v9/page-19.png","work/product_manual/qa_v9/page-2.png","work/product_manual/qa_v9/page-20.png","work/product_manual/qa_v9/page-21.png","work/product_manual/qa_v9/page-22.png","work/product_manual/qa_v9/page-23.png","work/product_manual/qa_v9/page-24.png","work/product_manual/qa_v9/page-25.png","work/product_manual/qa_v9/page-26.png","work/product_manual/qa_v9/page-27.png","work/product_manual/qa_v9/page-28.png","work/product_manual/qa_v9/page-29.png","work/product_manual/qa_v9/page-3.png","work/product_manual/qa_v9/page-30.png","work/product_manual/qa_v9/page-4.png","work/product_manual/qa_v9/page-5.png","work/product_manual/qa_v9/page-6.png","work/product_manual/qa_v9/page-7.png","work/product_manual/qa_v9/page-8.png","work/product_manual/qa_v9/page-9.png","work/product_manual/render_with_cjk_font.py"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/runtime.ts","packages/contracts/src/work.test.ts","reports/agent-adapters.latest.json","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":"55b9c2a0af78b6998bac3614dedc7187e37057ea","message":"merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 C45–C68 大波次\n\n冲突决议(24 文件):\n- reports/baseline:取本地 08-22 棘轮(458 tests / 66 files / 456 cases / 19×2 UI,为远端严格超集)\n- jobs.processor / work.module / queue.ts(fastify):取本地 C26 JobIntent 同事务链(远端 commit 后 queue.add + defaultJobOptions 兜底已被结构性取代;嫁接远端 Redis db NaN 守卫到 Fastify 侧保持双后端对等)\n- roles.service ×2:取本地 C42 审计事务版 + 嫁接远端 RoleAssignmentDto 返回类型接线(PR #3 拍板资产)\n- page.tsx:取本地 C53 会话身份(auth-identity testid,Playwright 依赖)\n- check-ui-acceptance:本地 OIDC 编排 + 远端 F8 注释并集\n- CLAUDE.md:本地 C45–C68 动态区为基底,嫁接远端 F8 行、五层 CI 假红叙事、结果裁决角色闸(G8 ⑫)、own-tests git-tracked 口径注记,快照更新为两远端对齐 c0ed754(run 32380591807 绿)\n\n编号撞号收口:两条时间线独立分配了 C25/C26/C1——远端线三个战役重编号为 C69(runner 自含 contracts 构建 + F8)/ C70(地板采集只认 git 已跟踪)/ C71(队列双注册策略显式化),经验库标题、脚本注释、测试注释同步改引;本地 C25(迟到成功)/C26(JobIntent)/C1(check-naming)编号不变。\n\n合并树证据:静态 pnpm check 全绿(Node 22,本地 dirty 工作区 2026-08-22);双后端 UI 聚合 38/38 绿(伙伴会话实跑,指纹绑定本合并内容)。合并提交自身的远端 CI 以 headSha 定位的 run 为准。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/55b9c2a0af78b6998bac3614dedc7187e37057ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:10:56-07:00","added":[],"removed":["apps/api-fastify/pnpm-lock.yaml","apps/api-nestjs/pnpm-lock.yaml","apps/web/pnpm-lock.yaml"],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/web/src/app/layout.tsx","apps/web/src/store/useAppStore.ts","docs/README.md","docs/adr/README.md","docs/governance-experience.md","docs/migration-playbook.md","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/learning.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/tenant.ts","packages/contracts/tsconfig.json","scripts/check-contract-consumers.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.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":1901,"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-21T23:43: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
|
3
|
5
|
1787411590
|
1787411987
|
0
|
1787411590
|
1787411987
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23745
|
merge: retain latest timeline3a release records al merge: retain latest timeline3a release records alongside full branch integration...
|
57
|
5
|
governance.yml
|
116
|
5
|
0
|
refs/heads/main
|
2344e0beefffd98e156c51bc725bf38ece6045a8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"afb2d3d5a938a2e9601d4b63f62b3f5f70bfe3c0","after":"2344e0beefffd98e156c51bc725bf38ece6045a8","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/afb2d3d5a938a2e9601d4b63f62b3f5f70bfe3c0...2344e0beefffd98e156c51bc725bf38ece6045a8","commits":[{"id":"2344e0beefffd98e156c51bc725bf38ece6045a8","message":"merge: retain latest timeline3a release records alongside full branch integration\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2344e0beefffd98e156c51bc725bf38ece6045a8","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-08T18:13:32-07:00","added":["docs/releases/2026-09-08-timeline3a.md","reports/video-timeline-media-2026-09-08/hotfix/backup-verification.json","reports/video-timeline-media-2026-09-08/hotfix/deployed-verify.json","reports/video-timeline-media-2026-09-08/hotfix/live-browser-verification.json","reports/video-timeline-media-2026-09-08/hotfix/post-deployment-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-video-timeline-media.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-timeline-media-2026-09-08/hotfix/validation.json"]},{"id":"1331c4b1946b5fa298d6b1dec03a08451d65b5d2","message":"merge: include latest media queue fix and finalize all-branch acceptance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1331c4b1946b5fa298d6b1dec03a08451d65b5d2","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-08T18:12:21-07:00","added":["docs/releases/2026-09-08-timeline3.md","reports/video-timeline-media-2026-09-08/hotfix/post-production-api.json","reports/video-timeline-media-2026-09-08/hotfix/specialty-results.json","reports/video-timeline-media-2026-09-08/hotfix/subtitle-api.json","reports/video-timeline-media-2026-09-08/hotfix/validation.json","reports/video-timeline-media-2026-09-08/timeline3-rollback.json"],"removed":[],"modified":["CLAUDE.md","docs/domain/owner-matrix.md","docs/governance/log/2026-09-08-all-branches-integration.md","docs/governance/log/2026-09-08-video-timeline-media.md","docs/product/pro-video-platform-progress.md","packages/contracts/src/material-access.test.ts","packages/video-edit/src/media-overview.test.ts","packages/video-edit/src/media-overview.ts","reports/admin-desktop.png","reports/admin-mobile.png","reports/all-branches-integration-2026-09-08/branch-ancestry-precommit.json","reports/all-branches-integration-2026-09-08/current-service-verify.json","reports/content-detail.output-mobile.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-timeline-media-2026-09-08/README.md","reports/video-timeline-media-2026-09-08/validation.json","scripts/check-video-edit-acceptance.cjs"]},{"id":"b2c796b851e665a6b29eb0c7052f8c6dadaf0038","message":"merge: combine governed workflows with current media editing and verify all gates\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b2c796b851e665a6b29eb0c7052f8c6dadaf0038","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-08T18:05:51-07:00","added":["apps/web/src/components/material-factory/video-edit/TimelineMedia.tsx","docs/governance/log/2026-09-08-video-timeline-media.md","docs/releases/2026-09-08-timeline2.md","packages/contracts/src/video-edit-media.test.ts","packages/contracts/src/video-edit-media.ts","packages/video-edit/src/media-overview.test.ts","packages/video-edit/src/media-overview.ts","reports/all-branches-integration-2026-09-08/branch-ancestry-precommit.json","reports/video-timeline-editing-2026-09-08/README.md","reports/video-timeline-editing-2026-09-08/backup-verification.json","reports/video-timeline-editing-2026-09-08/browser-verification.json","reports/video-timeline-editing-2026-09-08/deployed-verify.json","reports/video-timeline-editing-2026-09-08/live-browser-verification.json","reports/video-timeline-editing-2026-09-08/post-deployment-smoke.json","reports/video-timeline-editing-2026-09-08/post-production-api.json","reports/video-timeline-editing-2026-09-08/specialty-results.json","reports/video-timeline-editing-2026-09-08/subtitle-api.json","reports/video-timeline-editing-2026-09-08/validation.json","reports/video-timeline-media-2026-09-08/README.md","reports/video-timeline-media-2026-09-08/browser-verification.json","reports/video-timeline-media-2026-09-08/post-production-api.json","reports/video-timeline-media-2026-09-08/specialty-results.json","reports/video-timeline-media-2026-09-08/subtitle-api.json","reports/video-timeline-media-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/routes/video-edit.ts","apps/api-nestjs/src/video-edit/video-edit.controller.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/video-edit/EditTimeline.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/video-edit.module.css","apps/web/src/lib/api.ts","docs/domain/owner-matrix.md","docs/governance/log/2026-09-08-all-branches-integration.md","docs/governance/log/2026-09-08-video-timeline-editing.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","packages/contracts/src/index.ts","packages/contracts/src/material-access.test.ts","packages/video-edit/src/index.ts","reports/admin-desktop.png","reports/all-branches-integration-2026-09-08/current-service-verify.json","reports/all-branches-integration-2026-09-08/deployment-preflight.json","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png","scripts/check-ui-acceptance.mjs","scripts/check-video-edit-acceptance.cjs","scripts/check-video-post-production.cjs","scripts/lib/template-types-ui-acceptance.mjs"]},{"id":"2f928e6b794ba967193e71e102ab0687fdc21c15","message":"merge: integrate hljTest governed media workflows with current main safeguards\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2f928e6b794ba967193e71e102ab0687fdc21c15","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-08T17:51:45-07:00","added":["apps/api-fastify/prisma/migrations/20260909010000_integrate_governed_media_workflows/migration.sql","apps/api-fastify/src/modules/material-production/batch-archive-dispatcher.ts","apps/api-fastify/src/modules/material-production/delivery-rendition-dispatcher.ts","apps/api-fastify/test/brand-kit-assets.integration.test.ts","apps/api-fastify/test/brand-logo-batch-blocked.integration.test.ts","apps/api-fastify/test/brand-logo-batch-live.integration.test.ts","apps/api-fastify/test/brand-logo-batch.integration.test.ts","apps/api-fastify/test/delivery-rendition.integration.test.ts","apps/api-fastify/test/image-edit-lineage.integration.test.ts","apps/api-fastify/test/material-asset-deletion.integration.test.ts","apps/api-fastify/test/material-asset-history.integration.test.ts","apps/api-fastify/test/material-instance-export.integration.test.ts","apps/api-fastify/test/material-production-batch-archive.integration.test.ts","apps/api-fastify/test/material-production-batch.http.acceptance.test.ts","apps/api-fastify/test/material-production-batch.integration.test.ts","apps/api-fastify/test/material-template.integration.test.ts","apps/api-fastify/test/reference-image-generation-live.integration.test.ts","apps/api-fastify/test/reference-image-generation.integration.test.ts","apps/api-fastify/test/storyboard-ai-draft-blocked.integration.test.ts","apps/api-fastify/test/storyboard-composition-promotion.integration.test.ts","apps/api-fastify/test/storyboard-keyframe-blocked.integration.test.ts","apps/api-fastify/test/storyboard-keyframe-success.integration.test.ts","apps/api-fastify/test/storyboard-keyframe.http.acceptance.test.ts","apps/api-fastify/test/storyboard-keyframe.integration.test.ts","apps/api-fastify/test/storyboard-reference-input.integration.test.ts","apps/api-fastify/test/storyboard-shot-compliance.integration.test.ts","apps/api-fastify/test/storyboard-video-batch.integration.test.ts","apps/api-fastify/test/storyboard-video-composition-media.integration.test.ts","apps/api-fastify/test/storyboard-video-composition.integration.test.ts","apps/api-fastify/test/storyboard-video-progress.integration.test.ts","apps/api-nestjs/prisma/migrations/20260909010000_integrate_governed_media_workflows/migration.sql","apps/api-nestjs/src/material-factory/brand-logo-batch-dispatcher.service.ts","apps/api-nestjs/src/material-factory/storyboard-keyframe-dispatcher.service.ts","apps/api-nestjs/src/material-factory/storyboard-video-batch-dispatcher.service.ts","apps/api-nestjs/src/material-factory/storyboard-video-composition-dispatcher.service.ts","apps/api-nestjs/src/material-production/batch-archive-dispatcher.service.ts","apps/api-nestjs/src/material-production/delivery-rendition-dispatcher.service.ts","apps/api-nestjs/test/brand-kit-assets.integration.test.ts","apps/api-nestjs/test/brand-logo-batch-blocked.integration.test.ts","apps/api-nestjs/test/brand-logo-batch-live.integration.test.ts","apps/api-nestjs/test/brand-logo-batch.integration.test.ts","apps/api-nestjs/test/delivery-rendition.integration.test.ts","apps/api-nestjs/test/image-edit-lineage.integration.test.ts","apps/api-nestjs/test/material-asset-deletion.integration.test.ts","apps/api-nestjs/test/material-asset-history.integration.test.ts","apps/api-nestjs/test/material-instance-export.integration.test.ts","apps/api-nestjs/test/material-production-batch-archive.integration.test.ts","apps/api-nestjs/test/material-production-batch.http.acceptance.test.ts","apps/api-nestjs/test/material-production-batch.integration.test.ts","apps/api-nestjs/test/material-template.integration.test.ts","apps/api-nestjs/test/reference-image-generation-live.integration.test.ts","apps/api-nestjs/test/reference-image-generation.integration.test.ts","apps/api-nestjs/test/storyboard-ai-draft-blocked.integration.test.ts","apps/api-nestjs/test/storyboard-composition-promotion.integration.test.ts","apps/api-nestjs/test/storyboard-keyframe-blocked.integration.test.ts","apps/api-nestjs/test/storyboard-keyframe-success.integration.test.ts","apps/api-nestjs/test/storyboard-keyframe.http.acceptance.test.ts","apps/api-nestjs/test/storyboard-keyframe.integration.test.ts","apps/api-nestjs/test/storyboard-reference-input.integration.test.ts","apps/api-nestjs/test/storyboard-shot-compliance.integration.test.ts","apps/api-nestjs/test/storyboard-video-batch.integration.test.ts","apps/api-nestjs/test/storyboard-video-composition-media.integration.test.ts","apps/api-nestjs/test/storyboard-video-composition.integration.test.ts","apps/api-nestjs/test/storyboard-video-progress.integration.test.ts","apps/web/src/components/material-factory/BrandLogoBatchPanel.tsx","apps/web/src/components/material-factory/ProductionBatchPanel.tsx","apps/web/src/components/material-factory/ProductionWorkflowExtras.tsx","apps/web/src/components/material-factory/StoryboardWorkflowPanel.tsx","apps/web/src/components/material-factory/usePromoteDraft.ts","docs/governance/log/2026-09-08-all-branches-integration.md","docs/视频和图片流程优化清单.md","packages/contracts/src/storyboard-ai-draft.test.ts","packages/production-archive/package.json","packages/production-archive/src/index.test.ts","packages/production-archive/src/index.ts","packages/production-archive/tsconfig.json","packages/public-file/node-compile-cache/v22.23.1-x64-9de703df-0/060a89f2","packages/public-file/node-compile-cache/v22.23.1-x64-9de703df-0/203d21eb","packages/public-file/node-compile-cache/v22.23.1-x64-9de703df-0/d737ca98","packages/public-file/node-compile-cache/v22.23.1-x64-9de703df-0/e6c21f44","reports/all-branches-integration-2026-09-08/branch-decisions.json","reports/all-branches-integration-2026-09-08/current-service-verify.json","reports/all-branches-integration-2026-09-08/deployment-preflight.json"],"removed":[],"modified":[".gitattributes","CLAUDE.md","apps/api-fastify/package.json","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-production/material-production.service.ts","apps/api-fastify/src/modules/material-production/object-storage.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/object-storage.integration.test.ts","apps/api-fastify/test/production-action-guard.integration.test.ts","apps/api-fastify/test/template-image-types.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/creative-project/creative-worker.module.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.module.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/src/material-production/render-worker.service.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/api-nestjs/test/material-production-modes.integration.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/object-storage.integration.test.ts","apps/api-nestjs/test/production-action-guard.integration.test.ts","apps/api-nestjs/test/template-image-types.integration.test.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/BlockedResolutionPanel.tsx","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/DeliveryCenter.tsx","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/InpaintStudio.tsx","apps/web/src/components/material-factory/InstanceGallery.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/NewTemplateButton.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/QualityEvidencePanel.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/TemplateStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/components/material-factory/template-size-variant.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/Dockerfile","deploy/vm/release_test.py","docs/domain/owner-matrix.md","packages/contracts/src/material-access.test.ts","packages/contracts/src/material-access.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/production.test.ts","packages/contracts/src/production.ts","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/storyboard-video.test.ts","packages/contracts/src/storyboard.test.ts","packages/contracts/src/storyboard.ts","packages/public-file/src/index.test.ts","packages/public-file/src/index.ts","pnpm-lock.yaml","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-inference-acceptance.mjs","scripts/check-production-acceptance.mjs","scripts/check-public-file-acceptance.mjs","scripts/check-public-file-integration.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/vitest-skips.mjs","scripts/migration-history.json","services/model-sidecar/main.py"]},{"id":"85139103f8888f43354648f417578a866e3e3938","message":"merge: integrate atomic timeline editing and keyboard shortcuts\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/85139103f8888f43354648f417578a866e3e3938","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-08T17:13:09-07:00","added":["docs/governance/log/2026-09-08-video-timeline-editing.md","docs/product/pro-video-platform-progress.md","packages/contracts/src/video-edit-timeline.test.ts","packages/contracts/src/video-edit-timeline.ts"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/video-edit/EditTimeline.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/video-edit.module.css","docs/product/pro-video-platform-gap-analysis.md","packages/contracts/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"2344e0beefffd98e156c51bc725bf38ece6045a8","message":"merge: retain latest timeline3a release records alongside full branch integration\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2344e0beefffd98e156c51bc725bf38ece6045a8","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-08T18:13:32-07:00","added":["docs/releases/2026-09-08-timeline3a.md","reports/video-timeline-media-2026-09-08/hotfix/backup-verification.json","reports/video-timeline-media-2026-09-08/hotfix/deployed-verify.json","reports/video-timeline-media-2026-09-08/hotfix/live-browser-verification.json","reports/video-timeline-media-2026-09-08/hotfix/post-deployment-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-video-timeline-media.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-timeline-media-2026-09-08/hotfix/validation.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":724847,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T09:12: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
|
4
|
1788916575
|
1788916615
|
0
|
1788916574
|
1788916615
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23792
|
merge: retain completed template save deployment r merge: retain completed template save deployment records...
|
57
|
5
|
governance.yml
|
162
|
5
|
0
|
refs/heads/main
|
d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cb557111869e1e2a4374646ab0043e21bf988d16","after":"d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/cb557111869e1e2a4374646ab0043e21bf988d16...d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","commits":[{"id":"d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","message":"merge: retain completed template save deployment records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","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-09T07:21:39-07:00","added":["docs/releases/2026-09-09-template-save1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-save.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/template-save-20260909/README.md"]},{"id":"876caa602067a040ebf9a19fb7258de402d0f837","message":"test: verify combined image style and template save release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/876caa602067a040ebf9a19fb7258de402d0f837","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-09T07:21:31-07:00","added":["reports/image-style-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-image-style.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"f8e5c27dfbccb74bd6209c73ffccb9d3a7940507","message":"merge: retain template save fix alongside image styles\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f8e5c27dfbccb74bd6209c73ffccb9d3a7940507","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-09T07:12:33-07:00","added":["docs/governance/log/2026-09-09-template-save.md","reports/template-save-20260909/README.md","reports/template-save-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/NewTemplateButton.tsx","scripts/lib/template-types-ui-acceptance.mjs"]},{"id":"56f6a3d5d9742171a9acf9d915878b074b33658c","message":"fix(images): preserve selected visual style through generation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/56f6a3d5d9742171a9acf9d915878b074b33658c","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-09T07:12:19-07:00","added":["docs/governance/log/2026-09-09-image-style.md","packages/contracts/src/image-visual-style.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/image-size.integration.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/image-size.integration.test.ts","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/brand.ts","packages/contracts/src/image-type-prompt.test.ts","packages/contracts/src/index.ts","packages/contracts/src/material.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/lib/image-creation-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","message":"merge: retain completed template save deployment records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d433d91d383e5f7d9fee3713cf71de4bf0d9a5ac","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-09T07:21:39-07:00","added":["docs/releases/2026-09-09-template-save1.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-save.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/template-save-20260909/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":790015,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T22:20: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
|
4
|
1788963718
|
1788963759
|
0
|
1788963717
|
1788963759
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23737
|
merge: record timeline deployment while preserving merge: record timeline deployment while preserving subsequent subtitle work...
|
57
|
5
|
governance.yml
|
108
|
5
|
0
|
refs/heads/main
|
895d082beea96d68347a044a7d5325a4f22ca99c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"32bdfb83944482eb042e5b98fcf9e0548d6e6953","after":"895d082beea96d68347a044a7d5325a4f22ca99c","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/32bdfb83944482eb042e5b98fcf9e0548d6e6953...895d082beea96d68347a044a7d5325a4f22ca99c","commits":[{"id":"895d082beea96d68347a044a7d5325a4f22ca99c","message":"merge: record timeline deployment while preserving subsequent subtitle work\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/895d082beea96d68347a044a7d5325a4f22ca99c","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-08T16:59:03-07:00","added":["docs/releases/2026-09-08-timeline1.md","reports/video-timeline-preview-2026-09-08/backup-verification.json","reports/video-timeline-preview-2026-09-08/deployed-verify.json","reports/video-timeline-preview-2026-09-08/live-browser-verification.json","reports/video-timeline-preview-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-timeline-preview.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-timeline-preview-2026-09-08/README.md"]},{"id":"f09cc258438a96bbbbb438a90b300066137891bd","message":"docs(release): record verified professional timeline deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f09cc258438a96bbbbb438a90b300066137891bd","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-08T16:58:52-07:00","added":["docs/releases/2026-09-08-timeline1.md","reports/video-timeline-preview-2026-09-08/backup-verification.json","reports/video-timeline-preview-2026-09-08/deployed-verify.json","reports/video-timeline-preview-2026-09-08/live-browser-verification.json","reports/video-timeline-preview-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-timeline-preview.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-timeline-preview-2026-09-08/README.md"]},{"id":"c95402fcbf05b677946fbdadca403acf54b684f6","message":"fix(video-edit): preserve fractional source inpoints in subtitle samples\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c95402fcbf05b677946fbdadca403acf54b684f6","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-08T16:56:15-07:00","added":[],"removed":[],"modified":["apps/web/src/components/material-factory/video-edit/SubtitleBurnPanel.tsx","packages/video-edit/src/subtitle-preview.test.ts","packages/video-edit/src/subtitle-preview.ts"]},{"id":"f4eb48bf2949e4a612ceaa07c771d62bf8863af1","message":"merge: integrate subtitle samples with full timeline preview\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f4eb48bf2949e4a612ceaa07c771d62bf8863af1","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-08T16:53:19-07:00","added":["apps/web/src/components/material-factory/video-edit/SubtitleBurnPanel.tsx","packages/video-edit/src/subtitle-preview.test.ts","packages/video-edit/src/subtitle-preview.ts","scripts/check-subtitle-burn.cjs"],"removed":[],"modified":["apps/web/src/components/material-factory/video-edit/CaptionEditor.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/timeline-position.ts","apps/web/src/components/material-factory/video-edit/video-edit.module.css","docs/product/ai-video-edit.md","packages/contracts/src/video-edit.ts","packages/video-edit/src/index.ts","packages/video-edit/src/worker.ts","scripts/check-video-edit-subtitles-ui.cjs","scripts/check-video-post-production-ui.cjs","scripts/video-edit-timeline.test.mjs"]},{"id":"c924a892265d2032152096e70ad1c4c824a411f3","message":"feat(video-edit): add subtitle burn panel and bounded samples\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c924a892265d2032152096e70ad1c4c824a411f3","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-08T16:51:52-07:00","added":["apps/web/src/components/material-factory/video-edit/SubtitleBurnPanel.tsx","packages/video-edit/src/subtitle-preview.test.ts","packages/video-edit/src/subtitle-preview.ts","scripts/check-subtitle-burn.cjs"],"removed":[],"modified":["apps/web/src/components/material-factory/video-edit/CaptionEditor.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/video-edit.module.css","docs/product/ai-video-edit.md","packages/contracts/src/video-edit.ts","packages/video-edit/src/index.ts","packages/video-edit/src/worker.ts","scripts/check-video-edit-subtitles-ui.cjs","scripts/check-video-post-production-ui.cjs"]}],"total_commits":0,"head_commit":{"id":"895d082beea96d68347a044a7d5325a4f22ca99c","message":"merge: record timeline deployment while preserving subsequent subtitle work\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/895d082beea96d68347a044a7d5325a4f22ca99c","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-08T16:59:03-07:00","added":["docs/releases/2026-09-08-timeline1.md","reports/video-timeline-preview-2026-09-08/backup-verification.json","reports/video-timeline-preview-2026-09-08/deployed-verify.json","reports/video-timeline-preview-2026-09-08/live-browser-verification.json","reports/video-timeline-preview-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-timeline-preview.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-timeline-preview-2026-09-08/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":723762,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T07:52:18+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
3
|
0
|
1788911970
|
0
|
1788911963
|
1788911970
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23693
|
merge: preserve remote e2e work with r43 release r merge: preserve remote e2e work with r43 release record...
|
57
|
5
|
governance.yml
|
64
|
5
|
0
|
refs/heads/main
|
6476b76f819946f7e8a13042e1a2d9648fcf714a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"277e16585374bda952ebbc5f98f28b24e856ad76","after":"6476b76f819946f7e8a13042e1a2d9648fcf714a","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/277e16585374bda952ebbc5f98f28b24e856ad76...6476b76f819946f7e8a13042e1a2d9648fcf714a","commits":[{"id":"6476b76f819946f7e8a13042e1a2d9648fcf714a","message":"merge: preserve remote e2e work with r43 release record\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6476b76f819946f7e8a13042e1a2d9648fcf714a","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-08T09:18:57-07:00","added":["apps/web/e2e/README.md","apps/web/e2e/global-setup.ts","apps/web/e2e/onboarding.setup.ts","apps/web/e2e/specs/admin.spec.ts","apps/web/e2e/specs/bff-security.api.spec.ts","apps/web/e2e/specs/brand.spec.ts","apps/web/e2e/specs/content-studio.spec.ts","apps/web/e2e/specs/create-studio.spec.ts","apps/web/e2e/specs/creative-project.spec.ts","apps/web/e2e/specs/edit-studio.spec.ts","apps/web/e2e/specs/landing.spec.ts","apps/web/e2e/specs/navigation.spec.ts","apps/web/e2e/specs/production.spec.ts","apps/web/e2e/specs/script-storyboard.spec.ts","apps/web/e2e/specs/templates.spec.ts","apps/web/e2e/specs/workspace.mobile.spec.ts","apps/web/e2e/stack/api.mjs","apps/web/e2e/stack/shared.mjs","apps/web/e2e/stack/web.mjs","apps/web/e2e/support/api.ts","apps/web/e2e/support/env.ts","apps/web/e2e/support/fixtures.ts","apps/web/e2e/support/workspace.ts","apps/web/playwright.config.ts","docs/governance/log/2026-09-08-web-playwright-e2e.md"],"removed":[],"modified":["apps/web/.gitignore","apps/web/eslint.config.mjs","apps/web/package.json","apps/web/tsconfig.json","package.json","pnpm-lock.yaml"]},{"id":"3c4fe83c01a52b2bf16362a0434e16dde1bf87f5","message":"docs(release): merge verified r43 deployment record\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/3c4fe83c01a52b2bf16362a0434e16dde1bf87f5","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-08T09:18:05-07:00","added":["docs/releases/2026-09-08-r43.md"],"removed":[],"modified":["docs/governance/log/2026-09-08-still-aspect-ratio.md","docs/releases/current.md"]},{"id":"0c2eea581ae47b6c233e697c0301ca529c4e765c","message":"docs(release): record r43 still aspect ratio deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0c2eea581ae47b6c233e697c0301ca529c4e765c","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-08T09:17:58-07:00","added":["docs/releases/2026-09-08-r43.md"],"removed":[],"modified":["docs/governance/log/2026-09-08-still-aspect-ratio.md","docs/releases/current.md"]},{"id":"92e246b9a72083dd896cee508425dd27942eb301","message":"fix(production): page activity filters on server\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/92e246b9a72083dd896cee508425dd27942eb301","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-08T08:32:27-07:00","added":["docs/governance/log/2026-09-08-activity-filter-pagination.md","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/material-production/production-page.ts","apps/api-fastify/test/production-pagination.integration.test.ts","apps/api-nestjs/src/material-production/production-page.ts","apps/api-nestjs/test/production-pagination.integration.test.ts","apps/web/src/components/material-factory/ActivityLog.tsx","apps/web/src/components/material-factory/ProductionPagination.tsx","apps/web/src/components/material-factory/queries.ts","packages/contracts/src/production.ts","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","scripts/lib/production-pagination-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"6476b76f819946f7e8a13042e1a2d9648fcf714a","message":"merge: preserve remote e2e work with r43 release record\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6476b76f819946f7e8a13042e1a2d9648fcf714a","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-08T09:18:57-07:00","added":["apps/web/e2e/README.md","apps/web/e2e/global-setup.ts","apps/web/e2e/onboarding.setup.ts","apps/web/e2e/specs/admin.spec.ts","apps/web/e2e/specs/bff-security.api.spec.ts","apps/web/e2e/specs/brand.spec.ts","apps/web/e2e/specs/content-studio.spec.ts","apps/web/e2e/specs/create-studio.spec.ts","apps/web/e2e/specs/creative-project.spec.ts","apps/web/e2e/specs/edit-studio.spec.ts","apps/web/e2e/specs/landing.spec.ts","apps/web/e2e/specs/navigation.spec.ts","apps/web/e2e/specs/production.spec.ts","apps/web/e2e/specs/script-storyboard.spec.ts","apps/web/e2e/specs/templates.spec.ts","apps/web/e2e/specs/workspace.mobile.spec.ts","apps/web/e2e/stack/api.mjs","apps/web/e2e/stack/shared.mjs","apps/web/e2e/stack/web.mjs","apps/web/e2e/support/api.ts","apps/web/e2e/support/env.ts","apps/web/e2e/support/fixtures.ts","apps/web/e2e/support/workspace.ts","apps/web/playwright.config.ts","docs/governance/log/2026-09-08-web-playwright-e2e.md"],"removed":[],"modified":["apps/web/.gitignore","apps/web/eslint.config.mjs","apps/web/package.json","apps/web/tsconfig.json","package.json","pnpm-lock.yaml"]},"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":637466,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-08T23:37:12+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1788884359
|
1788884450
|
0
|
1788884358
|
1788884450
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23652
|
merge: preserve project analysis alongside release merge: preserve project analysis alongside release record...
|
57
|
5
|
governance.yml
|
24
|
5
|
0
|
refs/heads/main
|
0f6e72f043a9a62e02acbaa12d7f6085e110025c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0d31f4f01cdbf250d891121e9d402611861c992d","after":"0f6e72f043a9a62e02acbaa12d7f6085e110025c","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/0d31f4f01cdbf250d891121e9d402611861c992d...0f6e72f043a9a62e02acbaa12d7f6085e110025c","commits":[{"id":"0f6e72f043a9a62e02acbaa12d7f6085e110025c","message":"merge: preserve project analysis alongside release record\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0f6e72f043a9a62e02acbaa12d7f6085e110025c","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-06T08:53:31-07:00","added":["reports/project-deep-analysis-2026-09-06.md"],"removed":[],"modified":[]},{"id":"5aaadde0949bbfb191b3adbc01d88576cbc6541a","message":"docs(release): record verified local r15 deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5aaadde0949bbfb191b3adbc01d88576cbc6541a","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-06T08:52:33-07:00","added":["docs/releases/2026-09-06-r15.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-06-shijie-deployment.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"0f6e72f043a9a62e02acbaa12d7f6085e110025c","message":"merge: preserve project analysis alongside release record\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0f6e72f043a9a62e02acbaa12d7f6085e110025c","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-06T08:53:31-07:00","added":["reports/project-deep-analysis-2026-09-06.md"],"removed":[],"modified":[]},"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":286432,"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-09-06T23:52: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
|
4
|
1788710031
|
1788710069
|
0
|
1788710031
|
1788710069
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23715
|
merge: preserve current main with verified video p merge: preserve current main with verified video pause evidence...
|
57
|
5
|
governance.yml
|
86
|
5
|
0
|
refs/heads/main
|
dcb2db72e0c1f1ad289551309ce648384ce7fd3a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"923412ee456e126ed8b6ccc011b9878f92fc96e8","after":"dcb2db72e0c1f1ad289551309ce648384ce7fd3a","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/923412ee456e126ed8b6ccc011b9878f92fc96e8...dcb2db72e0c1f1ad289551309ce648384ce7fd3a","commits":[{"id":"dcb2db72e0c1f1ad289551309ce648384ce7fd3a","message":"merge: preserve current main with verified video pause evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/dcb2db72e0c1f1ad289551309ce648384ce7fd3a","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-08T11:19:48-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-industry-trends.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/industry-trends-2026-09-08/validation.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"0d47a9bf807302ffdc296c19631d8d356275876a","message":"test(video): verify batch pause and resume on integrated source\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0d47a9bf807302ffdc296c19631d8d356275876a","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-08T11:19:28-07:00","added":["reports/video-batch-pause-2026-09-08/validation.json","reports/video-batch-paused.mobile.png"],"removed":[],"modified":["CLAUDE.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-pause-2026-09-08/README.md"]},{"id":"84f942049728be292eb098f3064d8ffb0448b165","message":"Merge branch 'main' into feature/cloud-video-pause\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/84f942049728be292eb098f3064d8ffb0448b165","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-08T11:16:50-07:00","added":["docs/releases/2026-09-08-r51.md","reports/menu-toggle-2026-09-08/browser-verification.json","reports/menu-toggle-2026-09-08/deployed-verify.json","reports/menu-toggle-2026-09-08/deployment-summary.json","reports/menu-toggle-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-menu-toggle.md","docs/releases/current.md","reports/menu-toggle-2026-09-08/README.md"]},{"id":"8a2a9a5f190dc6b0f7bfdca930179f626635c795","message":"Merge branch 'main' into feature/cloud-video-pause\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8a2a9a5f190dc6b0f7bfdca930179f626635c795","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-08T11:13:20-07:00","added":["apps/api-fastify/prisma/migrations/20260908110000_industry_trends/migration.sql","apps/api-fastify/src/routes/industry-trends.ts","apps/api-fastify/test/industry-trends.integration.test.ts","apps/api-nestjs/prisma/migrations/20260908110000_industry_trends/migration.sql","apps/api-nestjs/src/creative-project/industry-trends.controller.ts","apps/api-nestjs/test/industry-trends.integration.test.ts","apps/web/src/components/material-factory/industry-trends/IndustryTrends.tsx","apps/web/src/components/material-factory/industry-trends/TrendReferences.tsx","apps/web/src/components/material-factory/industry-trends/industry-trends.module.css","docs/governance/log/2026-09-08-industry-trends.md","docs/governance/log/2026-09-08-menu-toggle.md","docs/product/industry-trends.md","docs/releases/migrations/2026-09-08-industry-trends.json","packages/contracts/src/industry-trends.test.ts","packages/contracts/src/industry-trends.ts","packages/industry-trends/package.json","packages/industry-trends/src/index.test.ts","packages/industry-trends/src/index.ts","packages/industry-trends/tsconfig.json","reports/full-submit-2026-09-08/deployment.json","reports/full-submit-2026-09-08/video-task-resolution.json","reports/industry-trends-2026-09-08/browser-result.json","reports/industry-trends-2026-09-08/migration-preflight.json","reports/industry-trends-2026-09-08/validation.json","reports/menu-toggle-2026-09-08/README.md","reports/menu-toggle-2026-09-08/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/creative-worker.ts","apps/api-fastify/test/content-workbench.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/creative-worker.ts","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/test/content-workbench.integration.test.ts","apps/web/src/components/material-factory/ContentStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/factory-shell.module.css","apps/web/src/lib/api.ts","apps/web/src/store/useFactoryStore.ts","deploy/vm/Dockerfile","deploy/vm/release.py","deploy/vm/release_test.py","docs/README.md","docs/deploy-vm.md","docs/domain-glossary.md","docs/domain/module-boundary.md","docs/domain/owner-matrix.md","docs/governance/log/2026-09-08-full-submit.md","docs/product/content-creation-workbench.md","docs/releases/2026-09-08-r50-attempt.md","docs/releases/current.md","packages/contracts/src/content.ts","packages/contracts/src/index.ts","pnpm-lock.yaml","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","scripts/check-module-boundary.mjs","scripts/check-ui-acceptance.mjs","scripts/migration-history.json"]},{"id":"0ace354a6d79c96eca95532b6b4a8c74b4685a04","message":"feat(video): pause and resume remaining batch submissions\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0ace354a6d79c96eca95532b6b4a8c74b4685a04","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-08T11:13:20-07:00","added":["apps/web/src/components/material-factory/video-batch.ts","docs/governance/log/2026-09-08-video-batch-pause.md","reports/video-batch-pause-2026-09-08/README.md","scripts/video-batch.test.mjs"],"removed":[],"modified":["apps/web/src/components/material-factory/VideoStudio.tsx","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-ui-fixture.mjs"]}],"total_commits":0,"head_commit":{"id":"dcb2db72e0c1f1ad289551309ce648384ce7fd3a","message":"merge: preserve current main with verified video pause evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/dcb2db72e0c1f1ad289551309ce648384ce7fd3a","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-08T11:19:48-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-industry-trends.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/industry-trends-2026-09-08/validation.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":663934,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T02:17:55+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
|
1788891605
|
1788891644
|
0
|
1788891604
|
1788891644
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23749
|
merge: preserve concurrent video feature verificat merge: preserve concurrent video feature verification with merged1 release record...
|
57
|
5
|
governance.yml
|
120
|
5
|
0
|
refs/heads/main
|
70fcc5c3d059656592fb2f434163184c84a4f5ea
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8e99066c5a7ccec997bad42cfd179ae14ef93d6c","after":"70fcc5c3d059656592fb2f434163184c84a4f5ea","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/8e99066c5a7ccec997bad42cfd179ae14ef93d6c...70fcc5c3d059656592fb2f434163184c84a4f5ea","commits":[{"id":"70fcc5c3d059656592fb2f434163184c84a4f5ea","message":"merge: preserve concurrent video feature verification with merged1 release record\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/70fcc5c3d059656592fb2f434163184c84a4f5ea","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-08T18:47:39-07:00","added":["apps/web/src/components/material-factory/video-edit/RangePreviewControls.tsx","docs/adr/0018-video-range-preview.md","docs/governance/log/2026-09-08-frontend-uiux-analysis.md","docs/governance/log/2026-09-08-video-range-preview.md","packages/contracts/src/video-edit-range.test.ts","packages/contracts/src/video-edit-range.ts","packages/video-edit/src/range-preview.test.ts","packages/video-edit/src/range-preview.ts","reports/frontend-uiux-analysis-2026-09-08/README.md","reports/frontend-uiux-analysis-2026-09-08/evidence/aggregate.mjs","reports/frontend-uiux-analysis-2026-09-08/evidence/scan-aggregate.md","reports/frontend-uiux-analysis-2026-09-08/evidence/scan-summary-rerun.json","reports/frontend-uiux-analysis-2026-09-08/evidence/scan-summary.json","reports/frontend-uiux-analysis-2026-09-08/evidence/source-metrics.sh","reports/frontend-uiux-analysis-2026-09-08/evidence/source-metrics.txt","reports/frontend-uiux-analysis-2026-09-08/evidence/uiux-interactions.mjs","reports/frontend-uiux-analysis-2026-09-08/evidence/uiux-scan.mjs","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-admin-operations.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-admin.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-brand.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-content.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-create.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-deliveries.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-events.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-gallery.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-home.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-industry-trends.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-inpaint.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-landing.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-reviews.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-script.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-shijie.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-storyboard.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-tasks.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-templates.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-video-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-video.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-admin.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-brand.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-content.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-create-scrolled.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-create.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-home.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-landing.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-menu-dialog.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-script.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-storyboard.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-tasks.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-video-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-video.jpg","reports/video-range-preview-2026-09-08/README.md","reports/video-range-preview-2026-09-08/benchmark.json","reports/video-range-preview-2026-09-08/browser-verification.json","reports/video-range-preview-2026-09-08/range-api.json","reports/video-range-preview-2026-09-08/specialty-results.json","reports/video-range-preview-2026-09-08/validation.json","scripts/benchmark-video-range.cjs","scripts/check-video-range-preview.cjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/routes/video-edit.ts","apps/api-nestjs/src/video-edit/video-edit.controller.ts","apps/web/src/components/material-factory/video-edit/SubtitleBurnPanel.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/timeline-position.ts","apps/web/src/lib/api.ts","deploy/vm/release.py","docs/README.md","docs/adr/README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","packages/contracts/src/video-edit.ts","packages/video-edit/src/index.ts","packages/video-edit/src/media.ts","packages/video-edit/src/post-production.ts","packages/video-edit/src/worker.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/video-edit-timeline.test.mjs"]},{"id":"be84a02fe95b4c57a66012445039aa18363b3ed6","message":"docs(release): record verified merged1 deployment and recovery evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/be84a02fe95b4c57a66012445039aa18363b3ed6","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-08T18:47:13-07:00","added":["docs/releases/2026-09-08-merged1.md","reports/releases/merged1-2026-09-08/backup-verification.json","reports/releases/merged1-2026-09-08/browser-verification.json","reports/releases/merged1-2026-09-08/build.json","reports/releases/merged1-2026-09-08/database-verification.json","reports/releases/merged1-2026-09-08/deployment.json","reports/releases/merged1-2026-09-08/final-verification.json","reports/releases/merged1-2026-09-08/identity.json","reports/releases/merged1-2026-09-08/rehearsal.json","reports/releases/merged1-2026-09-08/source-permissions.json"],"removed":[],"modified":["docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"70fcc5c3d059656592fb2f434163184c84a4f5ea","message":"merge: preserve concurrent video feature verification with merged1 release record\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/70fcc5c3d059656592fb2f434163184c84a4f5ea","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-08T18:47:39-07:00","added":["apps/web/src/components/material-factory/video-edit/RangePreviewControls.tsx","docs/adr/0018-video-range-preview.md","docs/governance/log/2026-09-08-frontend-uiux-analysis.md","docs/governance/log/2026-09-08-video-range-preview.md","packages/contracts/src/video-edit-range.test.ts","packages/contracts/src/video-edit-range.ts","packages/video-edit/src/range-preview.test.ts","packages/video-edit/src/range-preview.ts","reports/frontend-uiux-analysis-2026-09-08/README.md","reports/frontend-uiux-analysis-2026-09-08/evidence/aggregate.mjs","reports/frontend-uiux-analysis-2026-09-08/evidence/scan-aggregate.md","reports/frontend-uiux-analysis-2026-09-08/evidence/scan-summary-rerun.json","reports/frontend-uiux-analysis-2026-09-08/evidence/scan-summary.json","reports/frontend-uiux-analysis-2026-09-08/evidence/source-metrics.sh","reports/frontend-uiux-analysis-2026-09-08/evidence/source-metrics.txt","reports/frontend-uiux-analysis-2026-09-08/evidence/uiux-interactions.mjs","reports/frontend-uiux-analysis-2026-09-08/evidence/uiux-scan.mjs","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-admin-operations.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-admin.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-brand.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-content.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-create.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-deliveries.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-events.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-gallery.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-home.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-industry-trends.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-inpaint.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-landing.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-reviews.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-script.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-shijie.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-storyboard.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-tasks.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-templates.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-video-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-video.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-admin.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-brand.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-content.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-create-scrolled.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-create.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-home.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-landing.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-menu-dialog.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-script.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-storyboard.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-tasks.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-video-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-video.jpg","reports/video-range-preview-2026-09-08/README.md","reports/video-range-preview-2026-09-08/benchmark.json","reports/video-range-preview-2026-09-08/browser-verification.json","reports/video-range-preview-2026-09-08/range-api.json","reports/video-range-preview-2026-09-08/specialty-results.json","reports/video-range-preview-2026-09-08/validation.json","scripts/benchmark-video-range.cjs","scripts/check-video-range-preview.cjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/routes/video-edit.ts","apps/api-nestjs/src/video-edit/video-edit.controller.ts","apps/web/src/components/material-factory/video-edit/SubtitleBurnPanel.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/timeline-position.ts","apps/web/src/lib/api.ts","deploy/vm/release.py","docs/README.md","docs/adr/README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","packages/contracts/src/video-edit.ts","packages/video-edit/src/index.ts","packages/video-edit/src/media.ts","packages/video-edit/src/post-production.ts","packages/video-edit/src/worker.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/video-edit-timeline.test.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":748275,"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":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T09:47:12+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788918523
|
1788918613
|
0
|
1788918463
|
1788918613
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23775
|
merge: preserve completed history rollout with cur merge: preserve completed history rollout with current image edit evidence...
|
57
|
5
|
governance.yml
|
145
|
5
|
0
|
refs/heads/main
|
bdd85f7670b0e415d30614a16d6c1b2ca5f16a5e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"427959b0d8bf60af0e0924cef34ef9cbd1121f9e","after":"bdd85f7670b0e415d30614a16d6c1b2ca5f16a5e","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/427959b0d8bf60af0e0924cef34ef9cbd1121f9e...bdd85f7670b0e415d30614a16d6c1b2ca5f16a5e","commits":[{"id":"bdd85f7670b0e415d30614a16d6c1b2ca5f16a5e","message":"merge: preserve completed history rollout with current image edit evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/bdd85f7670b0e415d30614a16d6c1b2ca5f16a5e","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-09T03:21:43-07:00","added":["docs/releases/2026-09-09-history2.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-project-history.md","docs/releases/current.md","reports/project-history-20260909/README.md","reports/project-history-20260909/summary.json"]},{"id":"b2aeffe96948e288b6fa1f47be472c7a9984be78","message":"test: verify integrated image editing release candidate\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b2aeffe96948e288b6fa1f47be472c7a9984be78","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-09T03:16:45-07:00","added":["reports/image-edit-uiux-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-image-edit-uiux.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-edit-uiux-20260909/README.md","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"76db3e521a9b1c1e3bc13175c4eff2f4204f7548","message":"merge: integrate frozen workspace candidate before image edit validation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/76db3e521a9b1c1e3bc13175c4eff2f4204f7548","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-09T03:07:41-07:00","added":["apps/api-fastify/prisma/migrations/20260909100000_project_history_visibility/migration.sql","apps/api-fastify/test/creative-history-http.integration.test.ts","apps/api-nestjs/prisma/migrations/20260909100000_project_history_visibility/migration.sql","apps/api-nestjs/test/creative-history-http.integration.test.ts","apps/web/src/components/material-factory/CreativeProjectHistory.tsx","apps/web/src/components/material-factory/TemplatePreviewButton.tsx","apps/web/src/components/material-factory/industry-trends/TrendSources.tsx","docs/governance/log/2026-09-09-industry-trend-sources.md","docs/governance/log/2026-09-09-project-history.md","docs/governance/log/2026-09-09-template-preview.md","docs/project-history.md","docs/releases/migrations/2026-09-09-project-history.json","packages/contracts/src/trend-connectors.ts","packages/industry-trends/src/source-http.ts","packages/industry-trends/src/sources.test.ts","packages/industry-trends/src/sources.ts","reports/industry-trend-sources-20260909/README.md","reports/project-history-20260909/README.md","reports/project-history-20260909/summary.json","reports/template-preview-20260909/README.md","reports/template-preview-20260909/summary.json","scripts/lib/creative-history-ui-acceptance.mjs","scripts/lib/template-preview-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/creative-project/creative-project.service.ts","apps/api-fastify/src/routes/creative-project.ts","apps/api-fastify/src/routes/industry-trends.ts","apps/api-fastify/test/industry-trends.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/creative-project/creative-project.controller.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/api-nestjs/src/creative-project/industry-trends.controller.ts","apps/api-nestjs/test/industry-trends.integration.test.ts","apps/web/src/components/material-factory/ClearCreativeQueue.tsx","apps/web/src/components/material-factory/CreativeProjectBar.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/TemplateStudio.tsx","apps/web/src/components/material-factory/industry-trends/IndustryTrends.tsx","apps/web/src/components/material-factory/industry-trends/industry-trends.module.css","apps/web/src/lib/api.ts","docs/deploy-vm.md","docs/domain/owner-matrix.md","docs/product/industry-trends.md","packages/contracts/src/creative-project.ts","packages/contracts/src/index.ts","packages/contracts/src/industry-trends.ts","packages/contracts/src/material-access.test.ts","packages/contracts/src/material-access.ts","packages/industry-trends/src/index.test.ts","packages/industry-trends/src/index.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/haizan-rename-20260909/README.md","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/migration-history.json"]},{"id":"c77eef941295d6e827aee9a953abbc67d939c7df","message":"feat(web): improve image editing canvas and workflow\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c77eef941295d6e827aee9a953abbc67d939c7df","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-09T03:07:17-07:00","added":["apps/web/src/components/material-factory/useImageEditMask.ts","docs/governance/log/2026-09-09-image-edit-uiux.md","reports/image-edit-uiux-20260909/README.md","scripts/lib/image-edit-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/specs/create-studio.spec.ts","apps/web/src/components/material-factory/InpaintStudio.tsx","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-ui-fixture.mjs"]}],"total_commits":0,"head_commit":{"id":"bdd85f7670b0e415d30614a16d6c1b2ca5f16a5e","message":"merge: preserve completed history rollout with current image edit evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/bdd85f7670b0e415d30614a16d6c1b2ca5f16a5e","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-09T03:21:43-07:00","added":["docs/releases/2026-09-09-history2.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-project-history.md","docs/releases/current.md","reports/project-history-20260909/README.md","reports/project-history-20260909/summary.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":771521,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T18:21: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
|
4
|
1788949348
|
1788949438
|
0
|
1788949346
|
1788949438
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23779
|
merge: integrate completed director review workben merge: integrate completed director review workbench...
|
57
|
5
|
governance.yml
|
149
|
5
|
0
|
refs/heads/main
|
a7dc208b0a3f74330404cf65e778593857233112
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5607ab611f1e74673856aa25aa3f8393e3140e35","after":"a7dc208b0a3f74330404cf65e778593857233112","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/5607ab611f1e74673856aa25aa3f8393e3140e35...a7dc208b0a3f74330404cf65e778593857233112","commits":[{"id":"a7dc208b0a3f74330404cf65e778593857233112","message":"merge: integrate completed director review workbench\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a7dc208b0a3f74330404cf65e778593857233112","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-09T03:39:45-07:00","added":["docs/governance/log/2026-09-09-director-review.md","reports/director-review-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","scripts/check-ui-acceptance.mjs"]},{"id":"748bb0072649cec3aa2503c079a8b9f14f8c8c4c","message":"fix(web): clarify completed director review and read-only fields\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/748bb0072649cec3aa2503c079a8b9f14f8c8c4c","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-09T03:30:43-07:00","added":[],"removed":[],"modified":["apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","scripts/check-ui-acceptance.mjs"]},{"id":"79c831a0a59a1a6328fe9a3166a9072da4854adb","message":"Merge branch 'main' into codex/director-review-20260909\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/79c831a0a59a1a6328fe9a3166a9072da4854adb","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-09T03:27:57-07:00","added":["apps/web/src/components/material-factory/useImageEditMask.ts","docs/governance/log/2026-09-09-image-edit-uiux.md","docs/releases/2026-09-09-history2.md","reports/image-edit-uiux-20260909/README.md","reports/image-edit-uiux-20260909/summary.json","reports/industry-trend-sources-20260909/live-verification.json","reports/industry-trend-sources-20260909/summary.json","scripts/lib/image-edit-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/specs/create-studio.spec.ts","apps/web/src/components/material-factory/InpaintStudio.tsx","docs/governance/log/2026-09-09-industry-trend-sources.md","docs/governance/log/2026-09-09-project-history.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/industry-trend-sources-20260909/README.md","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/project-history-20260909/README.md","reports/project-history-20260909/summary.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-ui-fixture.mjs"]},{"id":"73f881750e86aec935991a2dfd1dc3e25c31cf46","message":"feat(web): complete director review workbench workflow\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/73f881750e86aec935991a2dfd1dc3e25c31cf46","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-09T03:26:42-07:00","added":["docs/governance/log/2026-09-09-director-review.md","reports/director-review-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"a7dc208b0a3f74330404cf65e778593857233112","message":"merge: integrate completed director review workbench\n\n# Conflicts:\n#\tCLAUDE.md\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a7dc208b0a3f74330404cf65e778593857233112","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-09T03:39:45-07:00","added":["docs/governance/log/2026-09-09-director-review.md","reports/director-review-20260909/README.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","scripts/check-ui-acceptance.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":772118,"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":8,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T18:35: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
|
4
|
1788950404
|
1788950494
|
0
|
1788950403
|
1788950494
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23581
|
merge: integrate all remaining branches
|
57
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
b3a5c0dc690884729878b7f4cce1adbad046be14
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c16f03b05ec70a53ac99f27dc7901ad3ad99a45a","after":"b3a5c0dc690884729878b7f4cce1adbad046be14","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/c16f03b05ec70a53ac99f27dc7901ad3ad99a45a...b3a5c0dc690884729878b7f4cce1adbad046be14","commits":[{"id":"b3a5c0dc690884729878b7f4cce1adbad046be14","message":"merge: integrate all remaining branches\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b3a5c0dc690884729878b7f4cce1adbad046be14","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-31T20:19:35-07:00","added":["apps/api-fastify/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-fastify/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-nestjs/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/src/queue/lyric-scenes.processor.ts","apps/web/src/app/api/[...path]/route.ts","apps/web/src/components/material-factory/LyricsStudio.tsx","apps/web/src/lib/public-asset-url.ts","deploy/vm/sidecar-bailian-requirements.txt","deploy/vm/sidecar-ocr-requirements.txt","services/model-sidecar/dashscope_provider.py"],"removed":[],"modified":["apps/api-fastify/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/types.ts","apps/api-nestjs/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","deploy/vm/.env.example","deploy/vm/Caddyfile","deploy/vm/Dockerfile","deploy/vm/docker-compose.yml","deploy/vm/sidecar.Dockerfile","packages/contracts/src/material-ocr-gate.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","packages/contracts/tsconfig.json","reports/adversarial-acceptance-audit.latest.md","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/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.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-inference-acceptance.mjs","scripts/check-production-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/download-material-models.mjs","scripts/lib/source-fingerprint.mjs"]},{"id":"dc10d6356138564bf70fcfa6370ba66d99f0b0d7","message":"feat(material): 完成正式生产与导演交付链路\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/dc10d6356138564bf70fcfa6370ba66d99f0b0d7","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-08-27T14:12:06+08:00","added":[".github/workflows/governance.yml","apps/api-fastify/prisma/migrations/20260823170000_formal_material_production/migration.sql","apps/api-fastify/prisma/migrations/20260823174500_add_provider_callback_receipts/migration.sql","apps/api-fastify/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-fastify/prisma/migrations/20260823184500_normalize_model_connections/migration.sql","apps/api-fastify/prisma/migrations/20260823190000_persist_storyboards/migration.sql","apps/api-fastify/prisma/migrations/20260823200000_add_outbox_claim_leases/migration.sql","apps/api-fastify/prisma/migrations/20260823210000_add_model_resource_policies/migration.sql","apps/api-fastify/prisma/migrations/20260823211000_add_job_intent_queue_namespace/migration.sql","apps/api-fastify/prisma/migrations/20260823212000_add_storyboard_version_snapshots/migration.sql","apps/api-fastify/prisma/migrations/20260823220000_script_scenario_modes/migration.sql","apps/api-fastify/prisma/migrations/20260823230000_storyboard_video/migration.sql","apps/api-fastify/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","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-fastify/src/modules/material-factory/model-connector.client.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/modules/material-production/runtime-trust.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/material-review.integration.test.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-fastify/test/model-connector.client.test.ts","apps/api-fastify/test/object-storage.integration.test.ts","apps/api-fastify/test/provider-callback.integration.test.ts","apps/api-nestjs/prisma/migrations/20260823170000_formal_material_production/migration.sql","apps/api-nestjs/prisma/migrations/20260823174500_add_provider_callback_receipts/migration.sql","apps/api-nestjs/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-nestjs/prisma/migrations/20260823184500_normalize_model_connections/migration.sql","apps/api-nestjs/prisma/migrations/20260823190000_persist_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/20260823200000_add_outbox_claim_leases/migration.sql","apps/api-nestjs/prisma/migrations/20260823210000_add_model_resource_policies/migration.sql","apps/api-nestjs/prisma/migrations/20260823211000_add_job_intent_queue_namespace/migration.sql","apps/api-nestjs/prisma/migrations/20260823212000_add_storyboard_version_snapshots/migration.sql","apps/api-nestjs/prisma/migrations/20260823220000_script_scenario_modes/migration.sql","apps/api-nestjs/prisma/migrations/20260823230000_storyboard_video/migration.sql","apps/api-nestjs/prisma/migrations/20260825090000_add_render_job_edit_sources/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/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/src/material-factory/model-connector.client.ts","apps/api-nestjs/src/material-production/job-intent-dispatcher.service.ts","apps/api-nestjs/src/material-production/material-production-worker.module.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.module.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/src/material-production/render-worker.service.ts","apps/api-nestjs/src/production-worker.ts","apps/api-nestjs/test/material-production-modes.integration.test.ts","apps/api-nestjs/test/material-production-worker.integration.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/material-review.integration.test.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/api-nestjs/test/object-storage.integration.test.ts","apps/api-nestjs/test/outbox-dispatcher.integration.test.ts","apps/api-nestjs/test/provider-callback.integration.test.ts","apps/web/public/material-factory/human-review-approved-stamp.png","apps/web/src/app/api/[...path]/route.ts","apps/web/src/components/material-factory/BlockedResolutionPanel.tsx","apps/web/src/components/material-factory/CreativeSupportSkills.tsx","apps/web/src/components/material-factory/DeliveryCenter.tsx","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/ModelConnectionsStudio.tsx","apps/web/src/components/material-factory/ModelOperationsDashboard.tsx","apps/web/src/components/material-factory/PipelineFlow.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/QualityEvidencePanel.tsx","apps/web/src/components/material-factory/ReviewCenter.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/VersionCompare.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/storyboard-director.ts","deploy/vm/sidecar-ocr-requirements.txt","design-qa.md","docs/domain/material-production-blueprint.md","docs/domain/module-boundary.md","docs/domain/owner-matrix.md","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","packages/contracts/src/production.test.ts","packages/contracts/src/production.ts","packages/contracts/src/script-scenario.test.ts","packages/contracts/src/script-sidecar.test.ts","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/storyboard-video.test.ts","packages/contracts/src/storyboard.test.ts","packages/contracts/src/storyboard.ts","scripts/check-material-review-concurrency-guard.mjs","scripts/check-module-boundary.mjs","scripts/check-production-acceptance.mjs","scripts/check-production-security.mjs","scripts/check-storyboard-director-guard.mjs","scripts/lib/source-fingerprint.mjs","services/model-sidecar/test_mask_composite.py"],"removed":[],"modified":[".claude/launch.json",".github/pull_request_template.md",".gitignore","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/src/plugins/outbox.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-fastify/test/material-script.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-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/api-nestjs/test/material-script.acceptance.test.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/DemoExportModal.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/ExportModal.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/InpaintStudio.tsx","apps/web/src/components/material-factory/InstanceGallery.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/RoleConfirmPanel.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/ShotBoard.tsx","apps/web/src/components/material-factory/StillVersionBar.tsx","apps/web/src/components/material-factory/TemplateStudio.tsx","apps/web/src/components/material-factory/brand.ts","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/procedural.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/components/material-factory/ui.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/public-asset-url.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","apps/web/tsconfig.json","deploy/vm/.env.example","deploy/vm/deploy.sh","deploy/vm/docker-compose.yml","deploy/vm/sidecar-bailian-requirements.txt","deploy/vm/sidecar.Dockerfile","docs/README.md","docs/deploy-vm.md","docs/product/controlled-ai-material-factory.md","package.json","packages/contracts/src/index.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","packages/contracts/src/realtime.ts","packages/contracts/src/script.ts","pnpm-lock.yaml","scripts/check-inference-acceptance.mjs","scripts/check-naming.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-script-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/download-material-models.mjs","scripts/governance-report.mjs","services/model-sidecar/README.md","services/model-sidecar/main.py"]},{"id":"5fbcad0bceea9e81914ae6b7e8bfb05265845598","message":"merge(main): 合并拍摄脚本与云端渲染能力\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5fbcad0bceea9e81914ae6b7e8bfb05265845598","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-08-18T16:58:46+08:00","added":[".gitattributes","apps/api-fastify/prisma/migrations/20260818042934_shooting_script_domain/migration.sql","apps/api-fastify/prisma/migrations/20260818053524_shot_still_versions/migration.sql","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/test/material-script.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260818042934_shooting_script_domain/migration.sql","apps/api-nestjs/prisma/migrations/20260818053524_shot_still_versions/migration.sql","apps/api-nestjs/src/material-factory/shooting-script.controller.ts","apps/api-nestjs/src/material-factory/shooting-script.service.ts","apps/api-nestjs/test/material-script.acceptance.test.ts","apps/web/src/components/material-factory/RoleConfirmPanel.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/ShotBoard.tsx","apps/web/src/components/material-factory/StillVersionBar.tsx","models/material-factory/manifest.json","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/.msc","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/.mv","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/README.md","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/config.json","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/inference.json","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/inference.pdiparams","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/inference.yml","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/img_textline180_demo_res.jpg","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/img_textline180_demo_res.json","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/inference.json","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/inference.pdiparams","models/material-factory/paddleocr/PP-LCNet_x1_0_textline_ori_infer/inference.yml","models/material-factory/paddleocr/PP-OCRv6_medium_det_infer/inference.json","models/material-factory/paddleocr/PP-OCRv6_medium_det_infer/inference.pdiparams","models/material-factory/paddleocr/PP-OCRv6_medium_det_infer/inference.yml","models/material-factory/paddleocr/PP-OCRv6_medium_rec_infer/inference.json","models/material-factory/paddleocr/PP-OCRv6_medium_rec_infer/inference.pdiparams","models/material-factory/paddleocr/PP-OCRv6_medium_rec_infer/inference.yml","models/material-factory/paddleocr/UVDoc_infer/inference.json","models/material-factory/paddleocr/UVDoc_infer/inference.pdiparams","models/material-factory/paddleocr/UVDoc_infer/inference.yml","models/material-factory/paddleocr/archives/PP-LCNet_x1_0_doc_ori_infer.tar","models/material-factory/paddleocr/archives/PP-LCNet_x1_0_textline_ori_infer.tar","models/material-factory/paddleocr/archives/PP-OCRv6_medium_det_infer.tar","models/material-factory/paddleocr/archives/PP-OCRv6_medium_rec_infer.tar","models/material-factory/paddleocr/archives/UVDoc_infer.tar","models/material-factory/qwen-image-2512/.gitattributes","models/material-factory/qwen-image-2512/README.md","models/material-factory/qwen-image-2512/model_index.json","models/material-factory/qwen-image-2512/scheduler/scheduler_config.json","models/material-factory/qwen-image-2512/text_encoder/config.json","models/material-factory/qwen-image-2512/text_encoder/generation_config.json","models/material-factory/qwen-image-2512/text_encoder/model-00001-of-00004.safetensors","models/material-factory/qwen-image-2512/text_encoder/model-00002-of-00004.safetensors","models/material-factory/qwen-image-2512/text_encoder/model-00003-of-00004.safetensors","models/material-factory/qwen-image-2512/text_encoder/model-00004-of-00004.safetensors","models/material-factory/qwen-image-2512/text_encoder/model.safetensors.index.json","models/material-factory/qwen-image-2512/tokenizer/added_tokens.json","models/material-factory/qwen-image-2512/tokenizer/chat_template.jinja","models/material-factory/qwen-image-2512/tokenizer/merges.txt","models/material-factory/qwen-image-2512/tokenizer/special_tokens_map.json","models/material-factory/qwen-image-2512/tokenizer/tokenizer_config.json","models/material-factory/qwen-image-2512/tokenizer/vocab.json","models/material-factory/qwen-image-2512/transformer/config.json","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00001-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00002-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00003-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00004-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00005-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00006-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00007-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00008-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model-00009-of-00009.safetensors","models/material-factory/qwen-image-2512/transformer/diffusion_pytorch_model.safetensors.index.json","models/material-factory/qwen-image-2512/vae/config.json","models/material-factory/qwen-image-2512/vae/diffusion_pytorch_model.safetensors","models/material-factory/qwen-image-edit-2511/.gitattributes","models/material-factory/qwen-image-edit-2511/README.md","models/material-factory/qwen-image-edit-2511/model_index.json","models/material-factory/qwen-image-edit-2511/processor/added_tokens.json","models/material-factory/qwen-image-edit-2511/processor/chat_template.jinja","models/material-factory/qwen-image-edit-2511/processor/merges.txt","models/material-factory/qwen-image-edit-2511/processor/preprocessor_config.json","models/material-factory/qwen-image-edit-2511/processor/special_tokens_map.json","models/material-factory/qwen-image-edit-2511/processor/tokenizer.json","models/material-factory/qwen-image-edit-2511/processor/tokenizer_config.json","models/material-factory/qwen-image-edit-2511/processor/video_preprocessor_config.json","models/material-factory/qwen-image-edit-2511/processor/vocab.json","models/material-factory/qwen-image-edit-2511/scheduler/scheduler_config.json","models/material-factory/qwen-image-edit-2511/text_encoder/config.json","models/material-factory/qwen-image-edit-2511/text_encoder/generation_config.json","models/material-factory/qwen-image-edit-2511/text_encoder/model-00001-of-00004.safetensors","models/material-factory/qwen-image-edit-2511/text_encoder/model-00002-of-00004.safetensors","models/material-factory/qwen-image-edit-2511/text_encoder/model-00003-of-00004.safetensors","models/material-factory/qwen-image-edit-2511/text_encoder/model-00004-of-00004.safetensors","models/material-factory/qwen-image-edit-2511/text_encoder/model.safetensors.index.json","models/material-factory/qwen-image-edit-2511/tokenizer/added_tokens.json","models/material-factory/qwen-image-edit-2511/tokenizer/chat_template.jinja","models/material-factory/qwen-image-edit-2511/tokenizer/merges.txt","models/material-factory/qwen-image-edit-2511/tokenizer/special_tokens_map.json","models/material-factory/qwen-image-edit-2511/tokenizer/tokenizer_config.json","models/material-factory/qwen-image-edit-2511/tokenizer/vocab.json","models/material-factory/qwen-image-edit-2511/transformer/config.json","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00001-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00002-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00003-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00004-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model-00005-of-00005.safetensors","models/material-factory/qwen-image-edit-2511/transformer/diffusion_pytorch_model.safetensors.index.json","models/material-factory/qwen-image-edit-2511/vae/config.json","models/material-factory/qwen-image-edit-2511/vae/diffusion_pytorch_model.safetensors","models/material-factory/z-image-turbo/.gitattributes","models/material-factory/z-image-turbo/README.md","models/material-factory/z-image-turbo/assets/DMDR.webp","models/material-factory/z-image-turbo/assets/Z-Image-Gallery.pdf","models/material-factory/z-image-turbo/assets/architecture.webp","models/material-factory/z-image-turbo/assets/decoupled-dmd.webp","models/material-factory/z-image-turbo/assets/leaderboard.png","models/material-factory/z-image-turbo/assets/leaderboard.webp","models/material-factory/z-image-turbo/assets/reasoning.png","models/material-factory/z-image-turbo/assets/showcase.jpg","models/material-factory/z-image-turbo/assets/showcase_editing.png","models/material-factory/z-image-turbo/assets/showcase_realistic.png","models/material-factory/z-image-turbo/assets/showcase_rendering.png","models/material-factory/z-image-turbo/model_index.json","models/material-factory/z-image-turbo/scheduler/scheduler_config.json","models/material-factory/z-image-turbo/text_encoder/config.json","models/material-factory/z-image-turbo/text_encoder/generation_config.json","models/material-factory/z-image-turbo/text_encoder/model-00001-of-00003.safetensors","models/material-factory/z-image-turbo/text_encoder/model-00002-of-00003.safetensors","models/material-factory/z-image-turbo/text_encoder/model-00003-of-00003.safetensors","models/material-factory/z-image-turbo/text_encoder/model.safetensors.index.json","models/material-factory/z-image-turbo/tokenizer/merges.txt","models/material-factory/z-image-turbo/tokenizer/tokenizer.json","models/material-factory/z-image-turbo/tokenizer/tokenizer_config.json","models/material-factory/z-image-turbo/tokenizer/vocab.json","models/material-factory/z-image-turbo/transformer/config.json","models/material-factory/z-image-turbo/transformer/diffusion_pytorch_model-00001-of-00003.safetensors","models/material-factory/z-image-turbo/transformer/diffusion_pytorch_model-00002-of-00003.safetensors","models/material-factory/z-image-turbo/transformer/diffusion_pytorch_model-00003-of-00003.safetensors","models/material-factory/z-image-turbo/transformer/diffusion_pytorch_model.safetensors.index.json","models/material-factory/z-image-turbo/vae/config.json","models/material-factory/z-image-turbo/vae/diffusion_pytorch_model.safetensors","packages/contracts/src/script-machine.test.ts","packages/contracts/src/script-role-gate.test.ts","packages/contracts/src/script-stale.test.ts","packages/contracts/src/script.ts","reports/script-acceptance.latest.json","scripts/check-script-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","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/routes/material-factory.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/brand.ts","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","package.json","packages/contracts/src/index.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.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.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/validation-source.latest.json","scripts/check-migrations.mjs","scripts/governance-report.mjs","services/model-sidecar/dashscope_provider.py","services/model-sidecar/main.py","services/model-sidecar/qwen.py"]},{"id":"549ea31448ec1e62e8f10039ed3f8c7d384e07f8","message":"feat(material-factory): 接入阿里云百炼真实生成链路\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/549ea31448ec1e62e8f10039ed3f8c7d384e07f8","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-08-17T17:34:04+08:00","added":["apps/api-fastify/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-fastify/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-nestjs/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/src/queue/lyric-scenes.processor.ts","apps/web/src/lib/public-asset-url.ts","deploy/vm/sidecar-bailian-requirements.txt","services/model-sidecar/dashscope_provider.py"],"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/plugins/queue.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/types.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.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/InstanceGallery.tsx","apps/web/src/components/material-factory/LyricsStudio.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/.env.example","deploy/vm/Caddyfile","deploy/vm/Dockerfile","deploy/vm/docker-compose.yml","deploy/vm/sidecar.Dockerfile","packages/contracts/src/material-ocr-gate.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","packages/contracts/tsconfig.json","services/model-sidecar/main.py"]}],"total_commits":0,"head_commit":{"id":"b3a5c0dc690884729878b7f4cce1adbad046be14","message":"merge: integrate all remaining branches\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b3a5c0dc690884729878b7f4cce1adbad046be14","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-31T20:19:35-07:00","added":["apps/api-fastify/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-fastify/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/prisma/migrations/20260814120000_cloud_generate_kind/migration.sql","apps/api-nestjs/prisma/migrations/20260817140000_lyric_storyboards/migration.sql","apps/api-nestjs/src/queue/lyric-scenes.processor.ts","apps/web/src/app/api/[...path]/route.ts","apps/web/src/components/material-factory/LyricsStudio.tsx","apps/web/src/lib/public-asset-url.ts","deploy/vm/sidecar-bailian-requirements.txt","deploy/vm/sidecar-ocr-requirements.txt","services/model-sidecar/dashscope_provider.py"],"removed":[],"modified":["apps/api-fastify/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/types.ts","apps/api-nestjs/prisma/migrations/20260823182000_add_outcome_attribution/migration.sql","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.module.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","deploy/vm/.env.example","deploy/vm/Caddyfile","deploy/vm/Dockerfile","deploy/vm/docker-compose.yml","deploy/vm/sidecar.Dockerfile","packages/contracts/src/material-ocr-gate.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","packages/contracts/tsconfig.json","reports/adversarial-acceptance-audit.latest.md","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/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.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-inference-acceptance.mjs","scripts/check-production-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/download-material-models.mjs","scripts/lib/source-fingerprint.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":47863,"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-09-01T10:41: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
|
4
|
1788232800
|
1788232834
|
0
|
1788232799
|
1788232834
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23689
|
merge: integrate accepted asset ownership and queu merge: integrate accepted asset ownership and queue scheduling fixes...
|
57
|
5
|
governance.yml
|
60
|
5
|
0
|
refs/heads/main
|
71f2769e17a58a697b380cc2a2be27428a9692b2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e831a73b46891ca7b86a44fa67605510f9272232","after":"71f2769e17a58a697b380cc2a2be27428a9692b2","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/e831a73b46891ca7b86a44fa67605510f9272232...71f2769e17a58a697b380cc2a2be27428a9692b2","commits":[{"id":"71f2769e17a58a697b380cc2a2be27428a9692b2","message":"merge: integrate accepted asset ownership and queue scheduling fixes\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/71f2769e17a58a697b380cc2a2be27428a9692b2","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-08T07:51:20-07:00","added":["apps/api-fastify/test/creative-dispatch-boundary.integration.test.ts","apps/api-nestjs/test/creative-dispatch-boundary.integration.test.ts","docs/governance/log/2026-09-08-adversarial-path-queue.md","packages/public-file/src/asset-path.test.ts","packages/public-file/src/asset-path.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/creative-project/creative-project.service.ts","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/test/http.acceptance.test.ts","apps/api-fastify/test/material-review.integration.test.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-review.integration.test.ts","docs/adr/0016-durable-creative-projects.md","packages/contracts/src/creative-queue-policy.test.ts","packages/contracts/src/creative-queue-policy.ts","packages/public-file/src/index.ts","packages/public-file/src/rendered-file.test.ts","packages/public-file/src/rendered-file.ts","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},{"id":"cdbd6c1dcea80e4dfe523a059543e043380c0904","message":"fix(security): bind asset paths to one canonical form and admit queue candidates before LIMIT\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cdbd6c1dcea80e4dfe523a059543e043380c0904","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-08T07:44:25-07:00","added":["apps/api-fastify/test/creative-dispatch-boundary.integration.test.ts","apps/api-nestjs/test/creative-dispatch-boundary.integration.test.ts","docs/governance/log/2026-09-08-adversarial-path-queue.md","packages/public-file/src/asset-path.test.ts","packages/public-file/src/asset-path.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/creative-project/creative-project.service.ts","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/test/http.acceptance.test.ts","apps/api-fastify/test/material-review.integration.test.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-review.integration.test.ts","docs/adr/0016-durable-creative-projects.md","packages/contracts/src/creative-queue-policy.test.ts","packages/contracts/src/creative-queue-policy.ts","packages/public-file/src/index.ts","packages/public-file/src/rendered-file.test.ts","packages/public-file/src/rendered-file.ts","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"71f2769e17a58a697b380cc2a2be27428a9692b2","message":"merge: integrate accepted asset ownership and queue scheduling fixes\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/71f2769e17a58a697b380cc2a2be27428a9692b2","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-08T07:51:20-07:00","added":["apps/api-fastify/test/creative-dispatch-boundary.integration.test.ts","apps/api-nestjs/test/creative-dispatch-boundary.integration.test.ts","docs/governance/log/2026-09-08-adversarial-path-queue.md","packages/public-file/src/asset-path.test.ts","packages/public-file/src/asset-path.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/creative-project/creative-project.service.ts","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/test/http.acceptance.test.ts","apps/api-fastify/test/material-review.integration.test.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-review.integration.test.ts","docs/adr/0016-durable-creative-projects.md","packages/contracts/src/creative-queue-policy.test.ts","packages/contracts/src/creative-queue-policy.ts","packages/public-file/src/index.ts","packages/public-file/src/rendered-file.test.ts","packages/public-file/src/rendered-file.ts","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":636940,"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-09-08T22:38:24+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
|
1788879154
|
1788879243
|
0
|
1788879154
|
1788879243
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23434
|
fix: 工作台展示与激活解耦修复播放闪烁;移除引擎标识显示
|
63
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
e35b3d57744e6178a7c3fdeae0aab051c6f2408f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1b55d1eece101ec72f25af96f62713da05ae06ff","after":"e35b3d57744e6178a7c3fdeae0aab051c6f2408f","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/1b55d1eece101ec72f25af96f62713da05ae06ff...e35b3d57744e6178a7c3fdeae0aab051c6f2408f","commits":[{"id":"e35b3d57744e6178a7c3fdeae0aab051c6f2408f","message":"fix: 工作台展示与激活解耦修复播放闪烁;移除引擎标识显示\n\n- 闪烁根因:激活与展示耦合在叶子字区间判定,播放穿过字间空洞时\n 三句上下文/字级轨道/KTV/检查器整块逐帧卸载重挂\n- 修法:展示层改句包络定位当前句;激活层仍只认叶子字区间\n (空洞内零字扫色、data-lyric-active=false,蓝图不变量保持),\n 句间空档三层空态不变(e2e 无词隔离用例语义原样)\n- 波形画布改 layout-effect 与播头同帧提交,仅尺寸变化时重设像素\n- 头部「Qwen3 FA · 80ms grid」与错误兜底文案中的引擎标识不再显示\n (engine/runtimeContract 数据层保留,审计不受影响)\n- 证据:typecheck 绿;check:ui 7/7(2026-07-21 实跑);\n 真实空洞点实测(句内 52.40s 整行保持、句间 63.88s 三层空态)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/e35b3d57744e6178a7c3fdeae0aab051c6f2408f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T20:43:46-07:00","added":[],"removed":[],"modified":["apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","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/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"e35b3d57744e6178a7c3fdeae0aab051c6f2408f","message":"fix: 工作台展示与激活解耦修复播放闪烁;移除引擎标识显示\n\n- 闪烁根因:激活与展示耦合在叶子字区间判定,播放穿过字间空洞时\n 三句上下文/字级轨道/KTV/检查器整块逐帧卸载重挂\n- 修法:展示层改句包络定位当前句;激活层仍只认叶子字区间\n (空洞内零字扫色、data-lyric-active=false,蓝图不变量保持),\n 句间空档三层空态不变(e2e 无词隔离用例语义原样)\n- 波形画布改 layout-effect 与播头同帧提交,仅尺寸变化时重设像素\n- 头部「Qwen3 FA · 80ms grid」与错误兜底文案中的引擎标识不再显示\n (engine/runtimeContract 数据层保留,审计不受影响)\n- 证据:typecheck 绿;check:ui 7/7(2026-07-21 实跑);\n 真实空洞点实测(句内 52.40s 整行保持、句间 63.88s 三层空态)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/e35b3d57744e6178a7c3fdeae0aab051c6f2408f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T20:43:46-07:00","added":[],"removed":[],"modified":["apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","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/ui-acceptance.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":29611,"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-22T10:55: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
|
6
|
1784691828
|
1784691919
|
0
|
1784691828
|
1784691920
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23642
|
fix: 完成内容恢复与分镜验收修复并归档本机部署证据
|
57
|
5
|
governance.yml
|
14
|
5
|
0
|
refs/heads/main
|
aa468b36029aea0cd0c2011527f68c3c09a39332
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5d1fb824260721f7fbd8bed2f58fb239d5f77f13","after":"aa468b36029aea0cd0c2011527f68c3c09a39332","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/5d1fb824260721f7fbd8bed2f58fb239d5f77f13...aa468b36029aea0cd0c2011527f68c3c09a39332","commits":[{"id":"aa468b36029aea0cd0c2011527f68c3c09a39332","message":"fix: 完成内容恢复与分镜验收修复并归档本机部署证据\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/aa468b36029aea0cd0c2011527f68c3c09a39332","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-05T15:21:08-07:00","added":["reports/admin-mobile.png","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/repair-deploy-2026-09-05/README.md","reports/repair-deploy-2026-09-05/api-fastify-release.log","reports/repair-deploy-2026-09-05/api-nestjs-release.log","reports/repair-deploy-2026-09-05/browser.log","reports/repair-deploy-2026-09-05/candidate-smoke.json","reports/repair-deploy-2026-09-05/cleanup.json","reports/repair-deploy-2026-09-05/cutover.json","reports/repair-deploy-2026-09-05/cutover.log","reports/repair-deploy-2026-09-05/deployed-1440.png","reports/repair-deploy-2026-09-05/deployed-390.png","reports/repair-deploy-2026-09-05/deployed-api-smoke.json","reports/repair-deploy-2026-09-05/deployed-browser.json","reports/repair-deploy-2026-09-05/deployed-services.json","reports/repair-deploy-2026-09-05/hi-atelier-creative-worker-1.log","reports/repair-deploy-2026-09-05/hi-atelier-production-worker-1.log","reports/repair-deploy-2026-09-05/image-source-verification.json","reports/repair-deploy-2026-09-05/image.log","reports/repair-deploy-2026-09-05/inference.log","reports/repair-deploy-2026-09-05/initialization-failure/inference-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/inference.log","reports/repair-deploy-2026-09-05/initialization-failure/production-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/production.log","reports/repair-deploy-2026-09-05/initialization-failure/public-file-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/public-file-acceptance.log","reports/repair-deploy-2026-09-05/initialization-failure/runtime-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/runtime.log","reports/repair-deploy-2026-09-05/initialization-failure/script-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/script.log","reports/repair-deploy-2026-09-05/initialization-failure/ui-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/ui.log","reports/repair-deploy-2026-09-05/model-inventory.json","reports/repair-deploy-2026-09-05/model-inventory.log","reports/repair-deploy-2026-09-05/online-model-readiness.json","reports/repair-deploy-2026-09-05/production.log","reports/repair-deploy-2026-09-05/public-file-acceptance.log","reports/repair-deploy-2026-09-05/quality.log","reports/repair-deploy-2026-09-05/release-summary.json","reports/repair-deploy-2026-09-05/runtime.log","reports/repair-deploy-2026-09-05/script.log","reports/repair-deploy-2026-09-05/sidecar-tests.log","reports/repair-deploy-2026-09-05/source-verification.log","reports/repair-deploy-2026-09-05/static-check.log","reports/repair-deploy-2026-09-05/ui.log","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","scripts/lib/storyboard-ui-fixture.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/CreativeProjectBar.tsx","deploy/vm/Dockerfile","reports/admin-desktop.png","reports/adversarial-acceptance-audit.latest.md","reports/content-detail.output-desktop.png","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/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.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/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},{"id":"4004691c0c44b320cfaae3c9b083067e7d09054c","message":"test: 归档完整验收与对抗探针原始日志\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4004691c0c44b320cfaae3c9b083067e7d09054c","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-05T14:40:42-07:00","added":["reports/adversarial-audit-2026-09-05/api-fastify-green.log","reports/adversarial-audit-2026-09-05/api-fastify-red.log","reports/adversarial-audit-2026-09-05/api-nestjs-green.log","reports/adversarial-audit-2026-09-05/api-nestjs-red.log","reports/adversarial-audit-2026-09-05/inference.log","reports/adversarial-audit-2026-09-05/models.log","reports/adversarial-audit-2026-09-05/post-cleanup-health.log","reports/adversarial-audit-2026-09-05/production.log","reports/adversarial-audit-2026-09-05/public-file-acceptance.log","reports/adversarial-audit-2026-09-05/quality.log","reports/adversarial-audit-2026-09-05/runner-regressions.log","reports/adversarial-audit-2026-09-05/runtime.log","reports/adversarial-audit-2026-09-05/script.log","reports/adversarial-audit-2026-09-05/sidecar-tests.log","reports/adversarial-audit-2026-09-05/source-verification.log","reports/adversarial-audit-2026-09-05/static-before-report-refresh.log","reports/adversarial-audit-2026-09-05/static-final.log","reports/adversarial-audit-2026-09-05/ui.log","reports/full-audit-2026-09-05/build.log","reports/full-audit-2026-09-05/inference.log","reports/full-audit-2026-09-05/models.log","reports/full-audit-2026-09-05/production.log","reports/full-audit-2026-09-05/public-file-acceptance.log","reports/full-audit-2026-09-05/quality-final.log","reports/full-audit-2026-09-05/quality.log","reports/full-audit-2026-09-05/regressions.log","reports/full-audit-2026-09-05/runtime.log","reports/full-audit-2026-09-05/script.log","reports/full-audit-2026-09-05/sidecar-tests.log","reports/full-audit-2026-09-05/startup.log","reports/full-audit-2026-09-05/static-final.log","reports/full-audit-2026-09-05/static.log","reports/full-audit-2026-09-05/ui.log"],"removed":[],"modified":[]},{"id":"013d2f803fce3903b2415f8e6a3ae2edd0ee54ad","message":"feat: 完善 PC/手机内容工作台并加固对抗验收\n\n接入桌面与手机应用壳,完善内容九步菜单、详情页、保存采用与输出体验,并收纳完整设计原型与验收证据。\n\n双后端修复配图复核字段污染、冻结成稿类型漏检和配图幂等来源漏检;六类验收绑定起始源码并检查结束指纹,禁止环境变量替换验收指纹。\n\n验证:双后端专项 39/34 通过,五类后端验收、内容九步响应式 UI 和静态检查通过。整站 UI 旧分镜用例仍失败,模型盘点 5/8 就绪,发布状态保持 OPEN;未部署运行容器。\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/013d2f803fce3903b2415f8e6a3ae2edd0ee54ad","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-05T14:39:53-07:00","added":["apps/web/src/components/material-factory/ContentStepNav.tsx","apps/web/src/components/material-factory/factory-shell.module.css","apps/web/src/components/material-factory/workspace-home.module.css","docs/design/full-uiux-2026-09-05/01-information-architecture.md","docs/design/full-uiux-2026-09-05/02-interaction-spec.md","docs/design/full-uiux-2026-09-05/03-design-system.md","docs/design/full-uiux-2026-09-05/04-page-blueprints.md","docs/design/full-uiux-2026-09-05/05-visual-concepts.md","docs/design/full-uiux-2026-09-05/06-mobile-app-architecture.md","docs/design/full-uiux-2026-09-05/07-mobile-app-interactions.md","docs/design/full-uiux-2026-09-05/08-mobile-visual-concepts.md","docs/design/full-uiux-2026-09-05/09-real-project-integration.md","docs/design/full-uiux-2026-09-05/10-content-step-details.md","docs/design/full-uiux-2026-09-05/README.md","docs/design/full-uiux-2026-09-05/concepts-manifest.json","docs/design/full-uiux-2026-09-05/concepts/01-workspace-editorial.png","docs/design/full-uiux-2026-09-05/concepts/02-workspace-project.png","docs/design/full-uiux-2026-09-05/concepts/03-workspace-tasks.png","docs/design/full-uiux-2026-09-05/design-validation.json","docs/design/full-uiux-2026-09-05/mobile-concepts-manifest.json","docs/design/full-uiux-2026-09-05/mobile-concepts/01-mobile-workspace.png","docs/design/full-uiux-2026-09-05/mobile-concepts/02-mobile-create.png","docs/design/full-uiux-2026-09-05/mobile-concepts/03-mobile-tasks.png","docs/design/full-uiux-2026-09-05/mobile-prompts.md","output/uiux-prototype-20260905/.gitignore","output/uiux-prototype-20260905/.npmrc","output/uiux-prototype-20260905/.openai/hosting.json","output/uiux-prototype-20260905/AGENTS.md","output/uiux-prototype-20260905/README.md","output/uiux-prototype-20260905/design-qa.md","output/uiux-prototype-20260905/desktop.config.ts","output/uiux-prototype-20260905/desktop.html","output/uiux-prototype-20260905/dist-desktop/assets/android/Keyboard.png","output/uiux-prototype-20260905/dist-desktop/assets/android/Pixel10.png","output/uiux-prototype-20260905/dist-desktop/assets/android/navigation-bar.svg","output/uiux-prototype-20260905/dist-desktop/assets/desktop-BjV2Vpbn.js","output/uiux-prototype-20260905/dist-desktop/assets/desktop-CCqGD-YV.css","output/uiux-prototype-20260905/dist-desktop/assets/iphone/Bezel.png","output/uiux-prototype-20260905/dist-desktop/assets/iphone/Keyboard.png","output/uiux-prototype-20260905/dist-desktop/assets/status/ios-status-icons.svg","output/uiux-prototype-20260905/dist-desktop/assets/status/status-icons.svg","output/uiux-prototype-20260905/dist-desktop/desktop.html","output/uiux-prototype-20260905/dist-desktop/gallery.html","output/uiux-prototype-20260905/dist-desktop/media/autumn.png","output/uiux-prototype-20260905/dist-desktop/media/city.png","output/uiux-prototype-20260905/dist-desktop/media/concert-thumb.png","output/uiux-prototype-20260905/dist-desktop/media/concert.png","output/uiux-prototype-20260905/dist-desktop/media/editorial-thumb.png","output/uiux-prototype-20260905/dist-desktop/media/editorial.png","output/uiux-prototype-20260905/dist-desktop/media/hi-mark.png","output/uiux-prototype-20260905/dist-desktop/media/preview.mp4","output/uiux-prototype-20260905/dist-desktop/screens/desktop-admin.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-brand.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-content.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-create.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-deliveries.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-edit.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-events.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-gallery.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-home.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-inpaint.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-login.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-operations.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-overview.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-reviews.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-script.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-storyboard.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-tasks.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-templates.png","output/uiux-prototype-20260905/dist-desktop/screens/desktop-video.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-admin.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-brand.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-content.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-create.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-deliveries.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-edit.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-events.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-gallery.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-home.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-inpaint.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-login.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-operations.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-overview.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-reviews.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-script.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-storyboard.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-tasks.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-templates.png","output/uiux-prototype-20260905/dist-desktop/screens/mobile-video.png","output/uiux-prototype-20260905/docs/interaction-guide.md","output/uiux-prototype-20260905/index.html","output/uiux-prototype-20260905/mobile-runtime.lock.json","output/uiux-prototype-20260905/package-lock.json","output/uiux-prototype-20260905/package.json","output/uiux-prototype-20260905/page-manifest.json","output/uiux-prototype-20260905/playwright.config.ts","output/uiux-prototype-20260905/public/assets/android/Keyboard.png","output/uiux-prototype-20260905/public/assets/android/Pixel10.png","output/uiux-prototype-20260905/public/assets/android/navigation-bar.svg","output/uiux-prototype-20260905/public/assets/iphone/Bezel.png","output/uiux-prototype-20260905/public/assets/iphone/Keyboard.png","output/uiux-prototype-20260905/public/assets/status/ios-status-icons.svg","output/uiux-prototype-20260905/public/assets/status/status-icons.svg","output/uiux-prototype-20260905/public/gallery.html","output/uiux-prototype-20260905/public/media/autumn.png","output/uiux-prototype-20260905/public/media/city.png","output/uiux-prototype-20260905/public/media/concert-thumb.png","output/uiux-prototype-20260905/public/media/concert.png","output/uiux-prototype-20260905/public/media/editorial-thumb.png","output/uiux-prototype-20260905/public/media/editorial.png","output/uiux-prototype-20260905/public/media/hi-mark.png","output/uiux-prototype-20260905/public/media/preview.mp4","output/uiux-prototype-20260905/public/screens/desktop-admin.png","output/uiux-prototype-20260905/public/screens/desktop-brand.png","output/uiux-prototype-20260905/public/screens/desktop-content.png","output/uiux-prototype-20260905/public/screens/desktop-create.png","output/uiux-prototype-20260905/public/screens/desktop-deliveries.png","output/uiux-prototype-20260905/public/screens/desktop-edit.png","output/uiux-prototype-20260905/public/screens/desktop-events.png","output/uiux-prototype-20260905/public/screens/desktop-gallery.png","output/uiux-prototype-20260905/public/screens/desktop-home.png","output/uiux-prototype-20260905/public/screens/desktop-inpaint.png","output/uiux-prototype-20260905/public/screens/desktop-login.png","output/uiux-prototype-20260905/public/screens/desktop-operations.png","output/uiux-prototype-20260905/public/screens/desktop-overview.png","output/uiux-prototype-20260905/public/screens/desktop-reviews.png","output/uiux-prototype-20260905/public/screens/desktop-script.png","output/uiux-prototype-20260905/public/screens/desktop-storyboard.png","output/uiux-prototype-20260905/public/screens/desktop-tasks.png","output/uiux-prototype-20260905/public/screens/desktop-templates.png","output/uiux-prototype-20260905/public/screens/desktop-video.png","output/uiux-prototype-20260905/public/screens/mobile-admin.png","output/uiux-prototype-20260905/public/screens/mobile-brand.png","output/uiux-prototype-20260905/public/screens/mobile-content.png","output/uiux-prototype-20260905/public/screens/mobile-create.png","output/uiux-prototype-20260905/public/screens/mobile-deliveries.png","output/uiux-prototype-20260905/public/screens/mobile-edit.png","output/uiux-prototype-20260905/public/screens/mobile-events.png","output/uiux-prototype-20260905/public/screens/mobile-gallery.png","output/uiux-prototype-20260905/public/screens/mobile-home.png","output/uiux-prototype-20260905/public/screens/mobile-inpaint.png","output/uiux-prototype-20260905/public/screens/mobile-login.png","output/uiux-prototype-20260905/public/screens/mobile-operations.png","output/uiux-prototype-20260905/public/screens/mobile-overview.png","output/uiux-prototype-20260905/public/screens/mobile-reviews.png","output/uiux-prototype-20260905/public/screens/mobile-script.png","output/uiux-prototype-20260905/public/screens/mobile-storyboard.png","output/uiux-prototype-20260905/public/screens/mobile-tasks.png","output/uiux-prototype-20260905/public/screens/mobile-templates.png","output/uiux-prototype-20260905/public/screens/mobile-video.png","output/uiux-prototype-20260905/qa/compare.py","output/uiux-prototype-20260905/qa/comparison-desktop-detail.png","output/uiux-prototype-20260905/qa/comparison-desktop.png","output/uiux-prototype-20260905/qa/comparison-mobile.png","output/uiux-prototype-20260905/qa/desktop-audit.json","output/uiux-prototype-20260905/qa/desktop-home.png","output/uiux-prototype-20260905/qa/desktop-overview.png","output/uiux-prototype-20260905/qa/desktop/admin.png","output/uiux-prototype-20260905/qa/desktop/brand.png","output/uiux-prototype-20260905/qa/desktop/content.png","output/uiux-prototype-20260905/qa/desktop/create.png","output/uiux-prototype-20260905/qa/desktop/deliveries.png","output/uiux-prototype-20260905/qa/desktop/edit.png","output/uiux-prototype-20260905/qa/desktop/events.png","output/uiux-prototype-20260905/qa/desktop/gallery.png","output/uiux-prototype-20260905/qa/desktop/home.png","output/uiux-prototype-20260905/qa/desktop/inpaint.png","output/uiux-prototype-20260905/qa/desktop/login.png","output/uiux-prototype-20260905/qa/desktop/operations.png","output/uiux-prototype-20260905/qa/desktop/reviews.png","output/uiux-prototype-20260905/qa/desktop/script.png","output/uiux-prototype-20260905/qa/desktop/storyboard.png","output/uiux-prototype-20260905/qa/desktop/tasks.png","output/uiux-prototype-20260905/qa/desktop/templates.png","output/uiux-prototype-20260905/qa/desktop/video.png","output/uiux-prototype-20260905/qa/focused.py","output/uiux-prototype-20260905/qa/make-gallery.py","output/uiux-prototype-20260905/qa/mobile-audit.json","output/uiux-prototype-20260905/qa/mobile-full.png","output/uiux-prototype-20260905/qa/mobile-home.png","output/uiux-prototype-20260905/qa/mobile-keyboard-fixed.png","output/uiux-prototype-20260905/qa/mobile-keyboard.png","output/uiux-prototype-20260905/qa/mobile-overview.png","output/uiux-prototype-20260905/qa/mobile/admin-full.png","output/uiux-prototype-20260905/qa/mobile/admin.png","output/uiux-prototype-20260905/qa/mobile/brand-full.png","output/uiux-prototype-20260905/qa/mobile/brand.png","output/uiux-prototype-20260905/qa/mobile/content-full.png","output/uiux-prototype-20260905/qa/mobile/content.png","output/uiux-prototype-20260905/qa/mobile/create-full.png","output/uiux-prototype-20260905/qa/mobile/create.png","output/uiux-prototype-20260905/qa/mobile/deliveries-full.png","output/uiux-prototype-20260905/qa/mobile/deliveries.png","output/uiux-prototype-20260905/qa/mobile/edit-full.png","output/uiux-prototype-20260905/qa/mobile/edit.png","output/uiux-prototype-20260905/qa/mobile/events-full.png","output/uiux-prototype-20260905/qa/mobile/events.png","output/uiux-prototype-20260905/qa/mobile/gallery-full.png","output/uiux-prototype-20260905/qa/mobile/gallery.png","output/uiux-prototype-20260905/qa/mobile/home-full.png","output/uiux-prototype-20260905/qa/mobile/home.png","output/uiux-prototype-20260905/qa/mobile/inpaint-full.png","output/uiux-prototype-20260905/qa/mobile/inpaint.png","output/uiux-prototype-20260905/qa/mobile/login-full.png","output/uiux-prototype-20260905/qa/mobile/login.png","output/uiux-prototype-20260905/qa/mobile/operations-full.png","output/uiux-prototype-20260905/qa/mobile/operations.png","output/uiux-prototype-20260905/qa/mobile/reviews-full.png","output/uiux-prototype-20260905/qa/mobile/reviews.png","output/uiux-prototype-20260905/qa/mobile/script-full.png","output/uiux-prototype-20260905/qa/mobile/script.png","output/uiux-prototype-20260905/qa/mobile/storyboard-full.png","output/uiux-prototype-20260905/qa/mobile/storyboard.png","output/uiux-prototype-20260905/qa/mobile/tasks-full.png","output/uiux-prototype-20260905/qa/mobile/tasks.png","output/uiux-prototype-20260905/qa/mobile/templates-full.png","output/uiux-prototype-20260905/qa/mobile/templates.png","output/uiux-prototype-20260905/qa/mobile/video-full.png","output/uiux-prototype-20260905/qa/mobile/video.png","output/uiux-prototype-20260905/qa/pixel-home.png","output/uiux-prototype-20260905/qa/pixel-keyboard.png","output/uiux-prototype-20260905/qa/video-playing.png","output/uiux-prototype-20260905/scripts/check-mobile-runtime.mjs","output/uiux-prototype-20260905/scripts/merge-build.mjs","output/uiux-prototype-20260905/scripts/prepare-sites-build.mjs","output/uiux-prototype-20260905/scripts/update-mobile-runtime-lock.mjs","output/uiux-prototype-20260905/src/App.tsx","output/uiux-prototype-20260905/src/Desktop.tsx","output/uiux-prototype-20260905/src/Prototype.tsx","output/uiux-prototype-20260905/src/desktop-main.tsx","output/uiux-prototype-20260905/src/main.tsx","output/uiux-prototype-20260905/src/mobile/BottomSheet.tsx","output/uiux-prototype-20260905/src/mobile/COMPONENTS.md","output/uiux-prototype-20260905/src/mobile/Carousel.tsx","output/uiux-prototype-20260905/src/mobile/Device.tsx","output/uiux-prototype-20260905/src/mobile/FlowStack.tsx","output/uiux-prototype-20260905/src/mobile/Keyboard.tsx","output/uiux-prototype-20260905/src/mobile/MobileCursor.tsx","output/uiux-prototype-20260905/src/mobile/MobileRuntime.tsx","output/uiux-prototype-20260905/src/mobile/MobileScroll.tsx","output/uiux-prototype-20260905/src/mobile/PhoneFrame.tsx","output/uiux-prototype-20260905/src/mobile/assets.ts","output/uiux-prototype-20260905/src/mobile/components.tsx","output/uiux-prototype-20260905/src/mobile/geometry.ts","output/uiux-prototype-20260905/src/mobile/index.ts","output/uiux-prototype-20260905/src/prototype.css","output/uiux-prototype-20260905/src/studio/CreationScreens.tsx","output/uiux-prototype-20260905/src/studio/Home.tsx","output/uiux-prototype-20260905/src/studio/ManagementScreens.tsx","output/uiux-prototype-20260905/src/studio/creation.css","output/uiux-prototype-20260905/src/studio/management.css","output/uiux-prototype-20260905/src/studio/shared.tsx","output/uiux-prototype-20260905/src/styles.css","output/uiux-prototype-20260905/src/vite-env.d.ts","output/uiux-prototype-20260905/tests/mobile-runtime.spec.ts","output/uiux-prototype-20260905/tests/runtime-fixture.css","output/uiux-prototype-20260905/tests/runtime-fixture.html","output/uiux-prototype-20260905/tests/runtime-fixture.tsx","output/uiux-prototype-20260905/tests/sites-worker.test.mjs","output/uiux-prototype-20260905/tsconfig.json","output/uiux-prototype-20260905/vite.config.ts","output/uiux-prototype-20260905/worker/index.js","reports/admin-desktop.png","reports/adversarial-audit-2026-09-05/README.md","reports/adversarial-audit-2026-09-05/cleanup.json","reports/adversarial-audit-2026-09-05/content-detail.brief-desktop.png","reports/adversarial-audit-2026-09-05/content-detail.images-desktop.png","reports/adversarial-audit-2026-09-05/content-detail.output-desktop.png","reports/adversarial-audit-2026-09-05/content-detail.output-mobile.png","reports/adversarial-audit-2026-09-05/content-detail.plans-desktop.png","reports/adversarial-audit-2026-09-05/content-detail.review-desktop.png","reports/adversarial-audit-2026-09-05/deployed-boundary-probes.json","reports/adversarial-audit-2026-09-05/fingerprint-red.json","reports/adversarial-audit-2026-09-05/inference-acceptance.latest.json","reports/adversarial-audit-2026-09-05/material-models.latest.json","reports/adversarial-audit-2026-09-05/production-acceptance.latest.json","reports/adversarial-audit-2026-09-05/public-file-acceptance.latest.json","reports/adversarial-audit-2026-09-05/run-scope.json","reports/adversarial-audit-2026-09-05/runtime-acceptance.latest.json","reports/adversarial-audit-2026-09-05/script-acceptance.latest.json","reports/adversarial-audit-2026-09-05/summary.json","reports/adversarial-audit-2026-09-05/ui-acceptance.latest.json","reports/content-detail.brief-desktop.png","reports/content-detail.failure.png","reports/content-detail.failure.txt","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/content-preview-connection-recovery-2026-09-05.md","reports/full-audit-2026-09-05/README.md","reports/full-audit-2026-09-05/admin-desktop.png","reports/full-audit-2026-09-05/cleanup.json","reports/full-audit-2026-09-05/content-detail.brief-desktop.png","reports/full-audit-2026-09-05/content-detail.images-desktop.png","reports/full-audit-2026-09-05/content-detail.output-desktop.png","reports/full-audit-2026-09-05/content-detail.output-mobile.png","reports/full-audit-2026-09-05/content-detail.plans-desktop.png","reports/full-audit-2026-09-05/content-detail.review-desktop.png","reports/full-audit-2026-09-05/deployed-project-read.json","reports/full-audit-2026-09-05/historical-adversarial.md","reports/full-audit-2026-09-05/inference-acceptance.latest.json","reports/full-audit-2026-09-05/model-api-key-saved.png","reports/full-audit-2026-09-05/model-credential-error.desktop.png","reports/full-audit-2026-09-05/model-credential-error.mobile.png","reports/full-audit-2026-09-05/production-acceptance.latest.json","reports/full-audit-2026-09-05/public-file-acceptance.latest.json","reports/full-audit-2026-09-05/runtime-acceptance.latest.json","reports/full-audit-2026-09-05/scope.md","reports/full-audit-2026-09-05/script-acceptance.latest.json","reports/full-audit-2026-09-05/startup.json","reports/full-audit-2026-09-05/summary.json","reports/full-audit-2026-09-05/ui-acceptance.latest.json","reports/full-audit-2026-09-05/ux-edit.desktop.png","reports/full-audit-2026-09-05/ux-home.desktop.png","reports/model-api-key-saved.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","scripts/lib/content-ui-acceptance.mjs","scripts/lib/source-verification.test.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/creative-project/content.service.ts","apps/api-fastify/src/modules/creative-project/creative-project.service.ts","apps/api-fastify/test/content-workbench.integration.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/creative-project/content.service.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/api-nestjs/test/content-workbench.integration.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/.env.example","apps/web/next.config.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/components/admin/admin.module.css","apps/web/src/components/material-factory/ContentStudio.tsx","apps/web/src/components/material-factory/CreativeProjectBar.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/PipelineFlow.tsx","apps/web/src/components/material-factory/WorkspaceHome.tsx","apps/web/src/components/material-factory/content-studio.module.css","apps/web/src/lib/providers.tsx","apps/web/tsconfig.json","reports/adversarial-acceptance-audit.latest.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-models.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/storyboard-director-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-inference-acceptance.mjs","scripts/check-production-acceptance.mjs","scripts/check-public-file-acceptance.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-script-acceptance.mjs","scripts/check-startup-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/source-fingerprint.mjs"]}],"total_commits":0,"head_commit":{"id":"aa468b36029aea0cd0c2011527f68c3c09a39332","message":"fix: 完成内容恢复与分镜验收修复并归档本机部署证据\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/aa468b36029aea0cd0c2011527f68c3c09a39332","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-05T15:21:08-07:00","added":["reports/admin-mobile.png","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/repair-deploy-2026-09-05/README.md","reports/repair-deploy-2026-09-05/api-fastify-release.log","reports/repair-deploy-2026-09-05/api-nestjs-release.log","reports/repair-deploy-2026-09-05/browser.log","reports/repair-deploy-2026-09-05/candidate-smoke.json","reports/repair-deploy-2026-09-05/cleanup.json","reports/repair-deploy-2026-09-05/cutover.json","reports/repair-deploy-2026-09-05/cutover.log","reports/repair-deploy-2026-09-05/deployed-1440.png","reports/repair-deploy-2026-09-05/deployed-390.png","reports/repair-deploy-2026-09-05/deployed-api-smoke.json","reports/repair-deploy-2026-09-05/deployed-browser.json","reports/repair-deploy-2026-09-05/deployed-services.json","reports/repair-deploy-2026-09-05/hi-atelier-creative-worker-1.log","reports/repair-deploy-2026-09-05/hi-atelier-production-worker-1.log","reports/repair-deploy-2026-09-05/image-source-verification.json","reports/repair-deploy-2026-09-05/image.log","reports/repair-deploy-2026-09-05/inference.log","reports/repair-deploy-2026-09-05/initialization-failure/inference-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/inference.log","reports/repair-deploy-2026-09-05/initialization-failure/production-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/production.log","reports/repair-deploy-2026-09-05/initialization-failure/public-file-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/public-file-acceptance.log","reports/repair-deploy-2026-09-05/initialization-failure/runtime-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/runtime.log","reports/repair-deploy-2026-09-05/initialization-failure/script-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/script.log","reports/repair-deploy-2026-09-05/initialization-failure/ui-acceptance.latest.json","reports/repair-deploy-2026-09-05/initialization-failure/ui.log","reports/repair-deploy-2026-09-05/model-inventory.json","reports/repair-deploy-2026-09-05/model-inventory.log","reports/repair-deploy-2026-09-05/online-model-readiness.json","reports/repair-deploy-2026-09-05/production.log","reports/repair-deploy-2026-09-05/public-file-acceptance.log","reports/repair-deploy-2026-09-05/quality.log","reports/repair-deploy-2026-09-05/release-summary.json","reports/repair-deploy-2026-09-05/runtime.log","reports/repair-deploy-2026-09-05/script.log","reports/repair-deploy-2026-09-05/sidecar-tests.log","reports/repair-deploy-2026-09-05/source-verification.log","reports/repair-deploy-2026-09-05/static-check.log","reports/repair-deploy-2026-09-05/ui.log","reports/ux-home.mobile.png","reports/ux-intake.desktop.png","scripts/lib/storyboard-ui-fixture.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/CreativeProjectBar.tsx","deploy/vm/Dockerfile","reports/admin-desktop.png","reports/adversarial-acceptance-audit.latest.md","reports/content-detail.output-desktop.png","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/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.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/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.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":157768,"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-09-05T22:35: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
|
4
|
1788647140
|
1788647175
|
0
|
1788647138
|
1788647175
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23553
|
fix: runtime 验收测试步串行化 + G18 回灌今晚实时抖动实锤
|
90
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
46dce73b5cfc83e6e6cfb87922f22faee76fdd28
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dcd85b10ac06ae862fe3789b6bd548838487b8fe","after":"46dce73b5cfc83e6e6cfb87922f22faee76fdd28","compare_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/compare/dcd85b10ac06ae862fe3789b6bd548838487b8fe...46dce73b5cfc83e6e6cfb87922f22faee76fdd28","commits":[{"id":"46dce73b5cfc83e6e6cfb87922f22faee76fdd28","message":"fix: runtime 验收测试步串行化 + G18 回灌今晚实时抖动实锤\n\n- check-runtime-acceptance 测试步加 --concurrency=1:双后端共库并行时\n TRUNCATE/领取/连接注册在表锁相撞(双进程并发最小复现证实)\n- 串行下仍偶发整文件投递全灭 → 指向 RedisModule 订阅启动竞态,\n 关闭条件(订阅就绪屏障 / 分库恢复并行)记入 G18\n- 基线地板收紧:testsPassed 172 / uiTestsPassed 10\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/46dce73b5cfc83e6e6cfb87922f22faee76fdd28","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T19:36:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/check-runtime-acceptance.mjs"]},{"id":"fe0779750f85dd39efc62643868fa45a373f2833","message":"feat: 多段分镜工作流(业务模块接待全流程落地 + 真实端到端验证)\n\n- 契约/状态机单源 contracts/h3-storyboard.ts(draft→generating→assembling→completed,\n failed/cancelled 可续跑、completed 仅 restart)+ 11 条契约测试;字段 schema 与\n 17n+5 帧数换算收敛为 h3.ts 单源\n- 编排 lib/h3-storyboards.ts:段状态派生自 H3Job;读时 reconcile + 15s 定时器兜底推进;\n 与单段生成共用互斥(advance 不持锁调 createJob,防自锁死);硬切拼接\n scripts/concat_segments.py(stream-copy 优先,回退重编码)\n- /storyboard 独立工作台页(分段编辑器/队列进度/成片预览)+ 6 个 API 路由 +\n Range 流式单源 http-range.ts;e2e 新增 2 用例(装配+边界提示 / API 生命周期与 409)\n- 真实端到端验证通过(2026-08-29,256²/2 步双段):自动推进、拼接成片 10.38s、\n 互斥/失败/续跑路径全实测——过程中实锤并修复两起环境事故:\n * bootstrap 自动 cp .env.example 把缓存指向空项目目录→触发全量重下(HC1):\n 模板缓存默认改为跟随用户级 + 就绪标记绑定缓存目录与 revision\n * xet/CAS 通道静默挂死(HC2):默认禁用 xet(显式 H3_HF_ENABLE_XET 才启用,\n 三入口 setdefault 单源)+ HF_HUB_ETAG_TIMEOUT=5\n- 蓝图/owner-matrix/词典/README/CLAUDE.md 动态区同步回灌\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/fe0779750f85dd39efc62643868fa45a373f2833","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T19:19:57-07:00","added":["apps/web/src/app/api/h3/storyboards/[id]/artifact/route.ts","apps/web/src/app/api/h3/storyboards/[id]/cancel/route.ts","apps/web/src/app/api/h3/storyboards/[id]/route.ts","apps/web/src/app/api/h3/storyboards/[id]/start/route.ts","apps/web/src/app/api/h3/storyboards/route.ts","apps/web/src/app/storyboard/page.tsx","apps/web/src/features/h3/components/StoryboardWorkspace.tsx","apps/web/src/features/h3/components/fields.tsx","apps/web/src/features/h3/lib/display.ts","apps/web/src/lib/h3-storyboards.ts","apps/web/src/lib/http-range.ts","docs/domain/storyboard-blueprint.md","packages/contracts/src/h3-storyboard.test.ts","packages/contracts/src/h3-storyboard.ts","scripts/concat_segments.py"],"removed":[],"modified":[".env.example","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/api/h3/jobs/[id]/artifact/route.ts","apps/web/src/features/h3/api/h3-api.ts","apps/web/src/features/h3/components/H3Workspace.tsx","apps/web/src/lib/h3-environment.ts","apps/web/src/lib/h3-model-manager.ts","docs/domain-glossary.md","docs/domain/owner-matrix.md","generate.py","packages/contracts/src/h3.ts","packages/contracts/src/index.ts","packages/contracts/tsconfig.tsbuildinfo","scripts/prepare_model.py"]},{"id":"cfdef16f1839583dfdbd8ac3c59ccf966238cdfc","message":"feat: 任务参数摘要与一键复用 + CI 库名重绑定\n\n- 任务行展示 分辨率/帧数/步数/seed 摘要;动作按钮群移至右上(复用参数 + 删除)\n- 复用参数:把历史任务的提示词与全部参数一键填回创作表单(浏览器实测验证)\n- 下载文件名改为 minimax-h3-\u003cid前8位\u003e.mp4\n- .github/workflows/governance.yml 三处 base_framework_ci → minimax_h3_studio_ci\n (否则未来远端 CI 必被 G15 前缀守卫拦截)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/cfdef16f1839583dfdbd8ac3c59ccf966238cdfc","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T18:29:09-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","apps/web/src/features/h3/components/H3Workspace.tsx"]},{"id":"137f4a260ccdcda651cc241c7970efc666042c88","message":"feat: H1 暴露面收窄 + 任务耗时展示 + 清理继承的嵌套 lockfile\n\n- web dev 默认绑定 127.0.0.1(launcher --host 仍可显式覆盖,后者生效已实测)\n- 完成任务在预览区与任务列表展示真实耗时(failed/cancelled 不展示,防 reconcile 虚高)\n- 删除源仓继承的三个嵌套 pnpm-lock.yaml(workspace 只认根 lockfile,\n 嵌套件误导 Next 根目录推断)\n- CLAUDE.md H1 条目按收口事实收窄\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/137f4a260ccdcda651cc241c7970efc666042c88","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T18:16:13-07:00","added":[],"removed":["apps/api-fastify/pnpm-lock.yaml","apps/api-nestjs/pnpm-lock.yaml","apps/web/pnpm-lock.yaml"],"modified":[".claude/launch.json","CLAUDE.md","apps/web/package.json","apps/web/src/features/h3/components/H3Workspace.tsx"]}],"total_commits":0,"head_commit":{"id":"46dce73b5cfc83e6e6cfb87922f22faee76fdd28","message":"fix: runtime 验收测试步串行化 + G18 回灌今晚实时抖动实锤\n\n- check-runtime-acceptance 测试步加 --concurrency=1:双后端共库并行时\n TRUNCATE/领取/连接注册在表锁相撞(双进程并发最小复现证实)\n- 串行下仍偶发整文件投递全灭 → 指向 RedisModule 订阅启动竞态,\n 关闭条件(订阅就绪屏障 / 分库恢复并行)记入 G18\n- 基线地板收紧:testsPassed 172 / uiTestsPassed 10\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/46dce73b5cfc83e6e6cfb87922f22faee76fdd28","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T19:36:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/check-runtime-acceptance.mjs"]},"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":725,"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-30T09:10: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
|
6
|
1788059669
|
1788059693
|
0
|
1788059668
|
1788059693
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|