|
23870
|
chore(reports): refresh clean static evidence @ b6 chore(reports): refresh clean static evidence @ b6df6d3(Mx-2 / Mx-6 后:runtime 336 / UI 5 绑定 879df4e;地板 336)...
|
116
|
5
|
platform.yml
|
7
|
5
|
0
|
refs/heads/main
|
69e687203ec23bd576dd7610db6d5db1f2197f6e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"95d9793f80ea584ebb999543fbe94e9597897fe6","after":"69e687203ec23bd576dd7610db6d5db1f2197f6e","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/95d9793f80ea584ebb999543fbe94e9597897fe6...69e687203ec23bd576dd7610db6d5db1f2197f6e","commits":[{"id":"69e687203ec23bd576dd7610db6d5db1f2197f6e","message":"chore(reports): refresh clean static evidence @ b6df6d3(Mx-2 / Mx-6 后:runtime 336 / UI 5 绑定 879df4e;地板 336)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/69e687203ec23bd576dd7610db6d5db1f2197f6e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:21:28-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"b6df6d321336de2cd8b36b517e4a2ca5ca25b31b","message":"docs(runtime): record clean commit acceptance @ 879df4e(runtime 336 / UI 5 / 差分 0,七 profile 单启合成模块端口形状;地板收紧 testsPassed 336)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/b6df6d321336de2cd8b36b517e4a2ca5ca25b31b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:20:50-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/ui-acceptance.latest.json"]},{"id":"879df4eaf2c1917170d5c25afbcd5dd76bd2e0dd","message":"feat(modules): M2 / M3 / M5 / M6 端口失败关闭形状 + 七模块作业处理器接入描述符(开发计划 §3A Mx-1 端口/作业部分、Mx-2、Mx-6)\n\n- @juhai/module-kit:PlatformPortUnavailableError(code PLATFORM_PORT_UNAVAILABLE:有提供方但失败关闭)、PlatformPortRequestError\n (PLATFORM_PORT_INVALID_REQUEST:输入不符内核 zod 契约)、shapeJobHandlers(id, jobs)(kind = jobKind,入参任意对象,执行终态拒绝 JOB_NOT_IMPLEMENTED)。\n- 端口形状(输入先经内核 schema,畸形即 RequestError):M3 permission-shape 永不抛错、无租户 NO_TENANT_CONTEXT、其余 POLICY_UNAVAILABLE;\n M2 credential-shape 拒绝新租约 CREDENTIAL_BACKEND_UNAVAILABLE;M5 fact-shape 拒绝受理 FACT_INTAKE_UNAVAILABLE(不生成 factId);\n M6 audit-shape AUDIT_SINK_UNAVAILABLE(调用方回滚)。四模块 package.json 加 @juhai/kernel 0.16.1 exact pin。\n- 七模块描述符:ports 工厂(四模块)+ jobHandlers = shapeJobHandlers(identity 壳包亦登记终态拒绝形状);modules.json 未改。\n- api-nestjs mapPlatformPortError:PLATFORM_PORT_UNAVAILABLE → 503(带 reasonCode)、PLATFORM_PORT_INVALID_REQUEST → 400(带 issues)。\n- platform-tests:夹具增 rejecting 画像;port/modules.test.ts 让四模块 shape 提供方跑同一套端口一致性夹具(6 例)。\n- 测试:kit 9、credential 17、permission 33、fact 22、audit 31、scope 16、ai-gateway 12、platform-tests 20(+11 todo)、api-nestjs 单测 13;\n runtime 静态门禁 14 项 + lint + typecheck 通过。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/879df4eaf2c1917170d5c25afbcd5dd76bd2e0dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:18:30-07:00","added":["runtime/modules/audit/src/ports/audit-sink.port.test.ts","runtime/modules/audit/src/ports/audit-sink.port.ts","runtime/modules/credential/src/ports/service-credential.port.test.ts","runtime/modules/credential/src/ports/service-credential.port.ts","runtime/modules/fact/src/ports/fact-export.port.test.ts","runtime/modules/fact/src/ports/fact-export.port.ts","runtime/modules/permission/src/ports/permission-decision.port.test.ts","runtime/modules/permission/src/ports/permission-decision.port.ts","runtime/test/port/modules.test.ts"],"removed":[],"modified":["runtime/apps/api-nestjs/src/common/platform-errors.ts","runtime/modules/ai-gateway/src/index.ts","runtime/modules/audit/package.json","runtime/modules/audit/src/index.ts","runtime/modules/credential/package.json","runtime/modules/credential/src/index.ts","runtime/modules/fact/package.json","runtime/modules/fact/src/index.ts","runtime/modules/identity/src/index.ts","runtime/modules/kit/src/index.test.ts","runtime/modules/kit/src/index.ts","runtime/modules/permission/package.json","runtime/modules/permission/src/index.ts","runtime/modules/scope/src/index.ts","runtime/pnpm-lock.yaml","runtime/test/package.json","runtime/test/port/platform-ports.conformance.ts"]},{"id":"520f396d1fceec60786d49c1c26ba7cdeff5956a","message":"chore(reports): refresh clean static evidence @ 8b082f0(Mx-3 Planner 迁入后:runtime 320 / UI 5 绑定 f7a0cbb;地板 320)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/520f396d1fceec60786d49c1c26ba7cdeff5956a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:08:29-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"8b082f05ef2292253e7994c6b7d5a0389d4db8a9","message":"docs(runtime): record clean commit acceptance @ f7a0cbb(runtime 320 / UI 5 / 差分 0,含五模块 Planner 107 例;地板收紧 testsPassed 320)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/8b082f05ef2292253e7994c6b7d5a0389d4db8a9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:07:55-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/ui-acceptance.latest.json"]}],"total_commits":0,"head_commit":{"id":"69e687203ec23bd576dd7610db6d5db1f2197f6e","message":"chore(reports): refresh clean static evidence @ b6df6d3(Mx-2 / Mx-6 后:runtime 336 / UI 5 绑定 879df4e;地板 336)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/69e687203ec23bd576dd7610db6d5db1f2197f6e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:21:28-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2095,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T15:08:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
22
|
1789198065
|
1789198088
|
0
|
1789198061
|
1789198112
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23549
|
fix(ci): drop external actions, bootstrap toolchai fix(ci): drop external actions, bootstrap toolchain from LAN and mirrors...
|
91
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
b3c5c984414aa860f22c4e16c497d4e25515c067
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"625450881bfb787bfa4ac092e11bfe534c340163","after":"b3c5c984414aa860f22c4e16c497d4e25515c067","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/625450881bfb787bfa4ac092e11bfe534c340163...b3c5c984414aa860f22c4e16c497d4e25515c067","commits":[{"id":"b3c5c984414aa860f22c4e16c497d4e25515c067","message":"fix(ci): drop external actions, bootstrap toolchain from LAN and mirrors\n\nCI run #6 实锤:act_runner 解析 uses: actions/* 时要从 github.com 克隆\naction 本体,本网络到 github.com 间歇 EOF——只要还有 uses:,flake 就\n是常态。零 uses: 化:\n\n- checkout 用纯 git 打同 LAN gitea(full history,F5 需要祖先提交;\n host 模式 workspace 复用,clean 保留 node_modules/.turbo 加速)\n- Node 22 二进制从 npmmirror 下载(URL 已本地验证 200),按架构探测\n- 外网依赖收敛为 npm registry + npmmirror 两处\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/b3c5c984414aa860f22c4e16c497d4e25515c067","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T19:03:43-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]}],"total_commits":0,"head_commit":{"id":"b3c5c984414aa860f22c4e16c497d4e25515c067","message":"fix(ci): drop external actions, bootstrap toolchain from LAN and mirrors\n\nCI run #6 实锤:act_runner 解析 uses: actions/* 时要从 github.com 克隆\naction 本体,本网络到 github.com 间歇 EOF——只要还有 uses:,flake 就\n是常态。零 uses: 化:\n\n- checkout 用纯 git 打同 LAN gitea(full history,F5 需要祖先提交;\n host 模式 workspace 复用,clean 保留 node_modules/.turbo 加速)\n- Node 22 二进制从 npmmirror 下载(URL 已本地验证 200),按架构探测\n- 外网依赖收敛为 npm registry + npmmirror 两处\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/b3c5c984414aa860f22c4e16c497d4e25515c067","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T19:03:43-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]},"repository":{"id":91,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"qwen3-8-flash-next","full_name":"luoanwu/qwen3-8-flash-next","description":"Qwen3.8-Flash-Next 本地部署与多模态 Chat/RAG 工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2993,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next/languages","html_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/qwen3-8-flash-next.git","clone_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-30T09:20:06+08:00","updated_at":"2026-08-30T09:56:47+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1788055431
|
1788055528
|
0
|
1788055430
|
1788055528
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23537
|
feat(mobile): add governed Capacitor delivery
|
81
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
466e9752ba0f670d790b5134ff2d12e5b0e974ea
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","after":"466e9752ba0f670d790b5134ff2d12e5b0e974ea","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7...466e9752ba0f670d790b5134ff2d12e5b0e974ea","commits":[{"id":"466e9752ba0f670d790b5134ff2d12e5b0e974ea","message":"feat(mobile): add governed Capacitor delivery\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/466e9752ba0f670d790b5134ff2d12e5b0e974ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-27T01:51:00-07:00","added":["apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/juhai/service/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/ios/.gitignore","apps/web/ios/App/App.xcodeproj/project.pbxproj","apps/web/ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist","apps/web/ios/App/App/AppDelegate.swift","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png","apps/web/ios/App/App/Base.lproj/LaunchScreen.storyboard","apps/web/ios/App/App/Base.lproj/Main.storyboard","apps/web/ios/App/App/Info.plist","apps/web/ios/App/CapApp-SPM/.gitignore","apps/web/ios/App/CapApp-SPM/Package.swift","apps/web/ios/App/CapApp-SPM/README.md","apps/web/ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift","apps/web/ios/debug.xcconfig","apps/web/src/features/service-cases/components/ServiceReportClient.tsx","reports/mobile-delivery.latest.json","scripts/build-mobile-web.mjs","scripts/check-mobile-delivery.mjs"],"removed":[],"modified":[".github/pull_request_template.md",".github/workflows/governance.yml","CLAUDE.md","README.md","apps/web/eslint.config.mjs","apps/web/package.json","apps/web/src/app/service/[token]/page.tsx","docs/domain/business-logic-map.md","package.json","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"466e9752ba0f670d790b5134ff2d12e5b0e974ea","message":"feat(mobile): add governed Capacitor delivery\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/466e9752ba0f670d790b5134ff2d12e5b0e974ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-27T01:51:00-07:00","added":["apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/juhai/service/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/ios/.gitignore","apps/web/ios/App/App.xcodeproj/project.pbxproj","apps/web/ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist","apps/web/ios/App/App/AppDelegate.swift","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png","apps/web/ios/App/App/Base.lproj/LaunchScreen.storyboard","apps/web/ios/App/App/Base.lproj/Main.storyboard","apps/web/ios/App/App/Info.plist","apps/web/ios/App/CapApp-SPM/.gitignore","apps/web/ios/App/CapApp-SPM/Package.swift","apps/web/ios/App/CapApp-SPM/README.md","apps/web/ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift","apps/web/ios/debug.xcconfig","apps/web/src/features/service-cases/components/ServiceReportClient.tsx","reports/mobile-delivery.latest.json","scripts/build-mobile-web.mjs","scripts/check-mobile-delivery.mjs"],"removed":[],"modified":[".github/pull_request_template.md",".github/workflows/governance.yml","CLAUDE.md","README.md","apps/web/eslint.config.mjs","apps/web/package.json","apps/web/src/app/service/[token]/page.tsx","docs/domain/business-logic-map.md","package.json","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]},"repository":{"id":81,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2514,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-08-26T11:19:08+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1787820687
|
1787820696
|
0
|
1787820687
|
1787820696
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23525
|
Refresh UI acceptance evidence
|
57
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
cf66be23009de5ecbefad6083c173eb1df3f4c8b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8e23fd115535dda184b584cb62396fa8286ef383","after":"cf66be23009de5ecbefad6083c173eb1df3f4c8b","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/8e23fd115535dda184b584cb62396fa8286ef383...cf66be23009de5ecbefad6083c173eb1df3f4c8b","commits":[{"id":"cf66be23009de5ecbefad6083c173eb1df3f4c8b","message":"Refresh UI acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cf66be23009de5ecbefad6083c173eb1df3f4c8b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:52:24-07:00","added":[".playwright-cli/page-2026-08-26T00-51-22-049Z.yml",".playwright-cli/page-2026-08-26T00-51-44-022Z.yml",".playwright-cli/page-2026-08-26T00-51-59-765Z.yml"],"removed":[],"modified":["reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png"]}],"total_commits":0,"head_commit":{"id":"cf66be23009de5ecbefad6083c173eb1df3f4c8b","message":"Refresh UI acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cf66be23009de5ecbefad6083c173eb1df3f4c8b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:52:24-07:00","added":[".playwright-cli/page-2026-08-26T00-51-22-049Z.yml",".playwright-cli/page-2026-08-26T00-51-44-022Z.yml",".playwright-cli/page-2026-08-26T00-51-59-765Z.yml"],"removed":[],"modified":["reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":46243,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-08-26T08:47:05+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1787705553
|
1787705605
|
0
|
1787705552
|
1787705605
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23506
|
fix(events)+test(learning): dispatcher 关闭等待在途 tick fix(events)+test(learning): dispatcher 关闭等待在途 tick + ActorSkillState 并发学习用例(G18 盲区)...
|
76
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
29718124b1918bbc4d17c98875c6043ec5fa3048
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"66900427c855e2ce43d634de9c6107dd6e8d1224","after":"29718124b1918bbc4d17c98875c6043ec5fa3048","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/66900427c855e2ce43d634de9c6107dd6e8d1224...29718124b1918bbc4d17c98875c6043ec5fa3048","commits":[{"id":"29718124b1918bbc4d17c98875c6043ec5fa3048","message":"fix(events)+test(learning): dispatcher 关闭等待在途 tick + ActorSkillState 并发学习用例(G18 盲区)\n\n- 两后端 outbox dispatcher close 原来只 clearInterval、不等在途 tick——\n tick 可越过 redis.quit() 撞死连接(CI 收尾竞态实锤形态之一);\n 现 clearInterval + await inFlight(收窄竞态面,不宣称根治偶发)\n- 两后端各 +2 真实 DB 双事务并发用例(行锁定序确定性编排):\n 乐观锁 0 行拒绝 / 经验恰好 +1 防双记账 / 失败侧全量回滚(P4)/\n 全新技能并发首建 P2002 防双行\n- 地板棘轮:testsPassed 354→358(专属基座 runtime_g18+Redis/12 全量 358/358)、\n ownTests→54、ownTestCases→354\n- CI run 32345463489(docs-only 提交偶发红)复跑即绿,判责=偶发成立,形态已记 G18\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/29718124b1918bbc4d17c98875c6043ec5fa3048","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T01:09:40-07:00","added":["apps/api-fastify/test/learning.concurrency.test.ts","apps/api-nestjs/test/learning.concurrency.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/plugins/outbox.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"29718124b1918bbc4d17c98875c6043ec5fa3048","message":"fix(events)+test(learning): dispatcher 关闭等待在途 tick + ActorSkillState 并发学习用例(G18 盲区)\n\n- 两后端 outbox dispatcher close 原来只 clearInterval、不等在途 tick——\n tick 可越过 redis.quit() 撞死连接(CI 收尾竞态实锤形态之一);\n 现 clearInterval + await inFlight(收窄竞态面,不宣称根治偶发)\n- 两后端各 +2 真实 DB 双事务并发用例(行锁定序确定性编排):\n 乐观锁 0 行拒绝 / 经验恰好 +1 防双记账 / 失败侧全量回滚(P4)/\n 全新技能并发首建 P2002 防双行\n- 地板棘轮:testsPassed 354→358(专属基座 runtime_g18+Redis/12 全量 358/358)、\n ownTests→54、ownTestCases→354\n- CI run 32345463489(docs-only 提交偶发红)复跑即绿,判责=偶发成立,形态已记 G18\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/29718124b1918bbc4d17c98875c6043ec5fa3048","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T01:09:40-07:00","added":["apps/api-fastify/test/learning.concurrency.test.ts","apps/api-nestjs/test/learning.concurrency.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/plugins/outbox.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1181,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-08-20T15:45:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1787213385
|
1787213410
|
0
|
1787213384
|
1787213411
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23493
|
fix(ci): 修复 CI 恒红两处根因——测试计数被 ANSI 吞掉、篡改 JWT 构造可能零改 fix(ci): 修复 CI 恒红两处根因——测试计数被 ANSI 吞掉、篡改 JWT 构造可能零改动...
|
74
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
b673ff8c2e248dbea016f88702215123aa58fd03
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"470495fbe7a9692bbb9ef869546e0050c9c73b7e","after":"b673ff8c2e248dbea016f88702215123aa58fd03","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/470495fbe7a9692bbb9ef869546e0050c9c73b7e...b673ff8c2e248dbea016f88702215123aa58fd03","commits":[{"id":"b673ff8c2e248dbea016f88702215123aa58fd03","message":"fix(ci): 修复 CI 恒红两处根因——测试计数被 ANSI 吞掉、篡改 JWT 构造可能零改动\n\n远端 CI 自 2026-08-14 起每次推送都红,共 7 次,无人当真。实测根因有二,\n都与本地环境差异有关,本机绿盘无法暴露(这正是 G14 不可被本地证据替代的原因)。\n\n根因一:假红——测试计数在 CI 下恒为 0\n`CI=true` 时 turbo 给子进程输出着色,实际字节是\n`Tests \\x1b[22m \\x1b[1m\\x1b[32m140 passed`;countPassedTests 的\n/Tests\\s+(\\d+)\\s+passed/ 匹配不到转义序列,于是本地 380、CI 0,\n报成「expected \u003e= 380, got 0」这种看似灾难性回归的消息。\n测试其实全过,坏的是计数器。修复:匹配前先剥 ANSI。\n注意这类假红不会被负向测试或空转测试发现——它们都在本地跑。\n\n根因二:flaky——「篡改 JWT」有约 1/64 概率篡改了个寂寞\ntampered 把签名第 5 位替换成 'A',但 payload 含 exp=now+600,签名每次都变;\n当该位恰好就是 'A' 时,产出的是与合法 token 逐字节相同的串,验签通过,\n断言 401 收到 200。base64url 64 字符 → 每次运行约 1.6% 触发,双后端同款。\n修复:先读该位,改成一个必定不同的字符。这类 flake 会悄悄削弱安全断言。\n\n验证:CI=true 条件下本地复现两处失败,修复后 pnpm check:runtime\nstatus=passed、testsPassed=380(地板 380)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/b673ff8c2e248dbea016f88702215123aa58fd03","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:52:28-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/security.http.test.ts","apps/api-nestjs/test/security.http.test.ts","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"b673ff8c2e248dbea016f88702215123aa58fd03","message":"fix(ci): 修复 CI 恒红两处根因——测试计数被 ANSI 吞掉、篡改 JWT 构造可能零改动\n\n远端 CI 自 2026-08-14 起每次推送都红,共 7 次,无人当真。实测根因有二,\n都与本地环境差异有关,本机绿盘无法暴露(这正是 G14 不可被本地证据替代的原因)。\n\n根因一:假红——测试计数在 CI 下恒为 0\n`CI=true` 时 turbo 给子进程输出着色,实际字节是\n`Tests \\x1b[22m \\x1b[1m\\x1b[32m140 passed`;countPassedTests 的\n/Tests\\s+(\\d+)\\s+passed/ 匹配不到转义序列,于是本地 380、CI 0,\n报成「expected \u003e= 380, got 0」这种看似灾难性回归的消息。\n测试其实全过,坏的是计数器。修复:匹配前先剥 ANSI。\n注意这类假红不会被负向测试或空转测试发现——它们都在本地跑。\n\n根因二:flaky——「篡改 JWT」有约 1/64 概率篡改了个寂寞\ntampered 把签名第 5 位替换成 'A',但 payload 含 exp=now+600,签名每次都变;\n当该位恰好就是 'A' 时,产出的是与合法 token 逐字节相同的串,验签通过,\n断言 401 收到 200。base64url 64 字符 → 每次运行约 1.6% 触发,双后端同款。\n修复:先读该位,改成一个必定不同的字符。这类 flake 会悄悄削弱安全断言。\n\n验证:CI=true 条件下本地复现两处失败,修复后 pnpm check:runtime\nstatus=passed、testsPassed=380(地板 380)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/b673ff8c2e248dbea016f88702215123aa58fd03","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:52:28-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/security.http.test.ts","apps/api-nestjs/test/security.http.test.ts","scripts/check-runtime-acceptance.mjs"]},"repository":{"id":74,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5661,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-15T06:22:30+08:00","updated_at":"2026-08-18T07:42:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1787010753
|
1787010832
|
0
|
1787010753
|
1787010832
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23475
|
Merge pull request #1: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据 Merge pull request #1: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录...
|
72
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
9618d78da3e668f14e3c1611d7090f45eef0c085
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7638e946e8817308b94a23c028a18ac465c342c6","after":"9618d78da3e668f14e3c1611d7090f45eef0c085","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/7638e946e8817308b94a23c028a18ac465c342c6...9618d78da3e668f14e3c1611d7090f45eef0c085","commits":[{"id":"9618d78da3e668f14e3c1611d7090f45eef0c085","message":"Merge pull request #1: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录\n\nfix: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/9618d78da3e668f14e3c1611d7090f45eef0c085","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-07-31T06:46:17-07:00","added":["apps/api-fastify/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-fastify/src/modules/customer-solutions/customer-solutions.service.ts","apps/api-fastify/src/routes/customer-solutions.ts","apps/api-nestjs/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-nestjs/src/customer-solutions/customer-solutions.controller.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.module.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.service.ts","apps/web/src/app/solution/[accessToken]/page.tsx","apps/web/src/components/MobileNav.tsx","apps/web/src/features/customer-solutions/api/customer-solutions-api.ts","apps/web/src/features/customer-solutions/components/CustomerSolutionWorkbench.tsx","apps/web/src/features/customer-solutions/components/PublicCustomerSolutionView.tsx","apps/web/src/features/customer-solutions/hooks/use-customer-solutions.ts","apps/web/src/features/customer-solutions/lib/floor-plan-analysis.ts","apps/web/src/store/solution-ui.ts","artifacts/project-promo-posters/01-smart-business.png","artifacts/project-promo-posters/02-flow-hub.png","artifacts/project-promo-posters/03-trusted-governance.png","artifacts/project-promo-posters/04-neon-tech.png","docs/audit/2026-07-30-customer-solutions-acceptance.md","docs/audit/2026-07-30-deep-audit.md","docs/domain/customer-solution-design-blueprint.md","packages/contracts/src/solution.ts","reports/gate-selftest.latest.json","reports/module-integration.latest.json","reports/vm-deploy.latest.json","scripts/check-gate-selftest.mjs","scripts/check-module-integration.mjs","scripts/check-vm-deploy.mjs","scripts/lib/report-provenance.test.mjs","scripts/lib/vitest-report.mjs","scripts/lib/vitest-report.test.mjs"],"removed":[],"modified":[".claude/launch.json",".gitignore","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/tsconfig.json","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain-glossary.md","docs/domain/order-fulfillment-blueprint.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/realtime.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-role-permissions.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","scripts/vm-deploy.sh"]},{"id":"de7d09aee2a89208f006bc3ca829f289619a64b7","message":"docs: 记录首份远端 CI 绿盘证据(PR #1 / run 30634897066)\n\nGitHub run 30634897066(PR #1,head 0d85a3d)两 job 全绿:\nstatic ✅;runtime 83 用例(contracts 31 / nestjs 26 / fastify 26)、\nUI 8 用例,与本地逐项一致,耗时 3m21s。这是本仓第一份远端绿盘证据。\n\n对照上一次 run 30603461723(push main fdf7b59):runtime 失败于\ntests-floor「expected \u003e= 74, got 0」,整步仅 24s。\n\n刻意不把这次转绿归因到本轮任何一个提交:PR #1 含 7 个提交,除本轮 3 个外\n还有 4 个存量提交(283f1bf…7638e94),其中任一都可能是真正修好它的那个,\n且 7638e94 从未单独在 CI 上跑过。要归因需另构造对照 run。\n\nG14 仍 OPEN:绿盘只覆盖该 PR 分支,github main 最近一次 run 仍红;\n尚未用受控失败 PR 证明违规真被阻断,分支保护 / required checks 也未定位。\nci-gate 行同步改写,明确「不得宣称 PR 已被机器拦截」。\n\npnpm check ✅ 绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/de7d09aee2a89208f006bc3ca829f289619a64b7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T06:39:36-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json"]},{"id":"0d85a3de6efbf4ca42ba1345bfbc66f9d1f9ac0d","message":"docs: 按真实 CI 证据更正 C23 与 G14\n\n上一提交把一个未经正确验证的结论写进了治理真源,此处更正。\n\nC23 原文断言「全新 clone/CI 上 pnpm check 必红(contracts dist 不存在)」。\n该结论来自 `pnpm --filter \u003capp\u003e typecheck` 的负向测试,而它绕过 turbo;\nCI 实际走 `pnpm typecheck` → `turbo run typecheck`,而 turbo.json 的\ntypecheck/lint/test 均带 dependsOn ^build,contracts 会被自动构建。\nGitHub run 30603461723 的 static job 实际通过,证伪原结论。\nC23 仍然成立的部分:绕过 turbo 的调用路径(.claude/launch.json 直接\npnpm dev、check:ui 的 pnpm --filter build)确实会吃到陈旧 dist——本轮\n409 STALE_VERSION 即由此而来;clean 不删 tsconfig.tsbuildinfo 导致\nclean \u0026\u0026 build 空 emit 是独立真 bug。修复本身保留。\n\nG14 原记「尚无远端 CI 运行证据」已过时。实际已有 run 30603461723\n(push main fdf7b59,2026-07-31T04:10Z):static ✅、runtime ❌\n`tests-floor: expected \u003e= 74, got 0`,整步仅 24s,真实 DB 测试没跑起来。\n地板断言拦住了这次「0 tests 假绿」,但根因未定位,需专项排查 CI 上\nturbo run test --force 为何产不出 vitest 报告。基线表 ci-gate 行同步\n改为「已有远端证据但为红盘」,仍 OPEN。\n\n另记:两个远端 main 不同步(origin 7638e94 / github fdf7b59),\nCI 只挂 github 侧,且只在 pull_request 或 push main 触发。\n\npnpm check ✅ 绿(含 check:governance-docs / check:docs-truth)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/0d85a3de6efbf4ca42ba1345bfbc66f9d1f9ac0d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T06:30:18-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json"]},{"id":"67849d6aad796878e6fd40b2e54307780b01442f","message":"chore: 重跑三级门禁并绑定干净工作区证据\n\n上一提交的报告生成于 dirty 工作区(gitSha 指向父提交 7638e94、\nworktreeDirty=true),只能支撑「本地工作区通过」。此处在 a015400 的\n干净检出上重跑三级门禁,让三份 latest 报告的 provenance 统一绑定\n该提交且 worktreeDirty=false——可支撑「提交 a015400 在本机干净工作区\n通过三级门禁」。\n\npnpm check ✅ 5/5\npnpm check:runtime ✅ 83 用例 / 0 失败(PG:55432/juhai_quotation_runtime_20260731d + Redis:6382)\npnpm check:ui ✅ 8 用例 / 0 失败(PG:55432/juhai_quotation_ui_20260731d + Redis:6382)\n\n仍不得外推为远端已发布或 CI 已通过:本分支未推送,无远端 run 证据(G14)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/67849d6aad796878e6fd40b2e54307780b01442f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T06:16:25-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json"]},{"id":"a015400b8aa901246315eb213d20354d6ded3133","message":"fix: 打通契约构建链并补齐方案复核依据\n\n本提交包含两批改动。工作区里它们已交织到同一行/同一 hunk\n(package.json 的 check 串、next.config.ts 的 output),无法拆开单独提交。\n\n── 批次 A:本轮定位并修复(Claude 作业)────────────────────────────\n\n契约包 src/dist 漂移(C23)——P1「运行时到底读哪一份」的隐藏变体:\ntypecheck 与 contracts 单测读 src,两后端运行时经 package main 读 dist。\n`pnpm --filter` 不走 turbo 的 dependsOn ^build,dist 又被 gitignore,\n于是门禁全绿而运行时按旧契约行为。实测症状:dist 缺 versionNo →\nZod 静默 strip → 技术复核恒返 409 STALE_VERSION。\n负向验证:移走 dist 后 typecheck 立刻 TS2307,证明全新 clone/CI 上必红。\n- package.json: check 前置 build:contracts\n- scripts/check-{runtime,ui}-acceptance.mjs: 各加 contracts 构建步骤\n- .claude/launch.json: 四个配置均前置 contracts 构建\n- packages/contracts/package.json: 补 prepare;clean 补删 tsconfig.tsbuildinfo\n (composite 下留着 buildinfo 会让 clean+build 空 emit)\n\n方案表单默认路径不可用(C24):\n「使用客户主联系人」value 为空串,contactId 契约是 uuid().optional(),\n空串不过校验,导致默认状态下表单永不可提交,错误还被汇总成一句\n指不到联系人的话。register 处归一为 undefined。\n\n客户方案复核依据面板:\n技术复核/经理批准需在同一屏看到客户需求、空间与工区、平面图、逐档配置清单。\n清单只渲染规格字段,刻意不展开 product 以免带出 standardPriceCents\n(角色权限单源里技术角色不继承报价域敏感读取)。缺图纸显式标注但不阻断。\n补填资料入口接上此前零消费者的 useUpdateSolution + PATCH /solutions/:id,\n仅在 DRAFT/NEEDS_INFORMATION/REVISION_REQUIRED 开放——修复「目标客群留空\n的方案走到 APPROVED 后永远发布不了且无处补填」的死路。\n\n契约类型补齐:SolutionProduct 增补 product/surveySpace 嵌套(服务端一直下发,\n此前类型比载荷窄)。\n\nE2E 回归锁:新增专打默认联系人路径的用例,兼测复核依据面板与价格红线。\n负向验证:撤回 contactId 修复 → check:ui 报红;还原 → 8 用例全绿。\n\n附带:next.config.ts 的 output 重复定义(TS2783,本轮之前即存在,\n导致 pnpm check 红)改为三元计算,行为等价;check-vm-deploy 的 standalone\n绊网相应收窄为「字面量或该正确三元」,不放宽成 /output:.*standalone/\n(负向验证:三元写反即红)。\n\n── 批次 B:进入本轮前工作区已有的未提交改动(非本轮作业)──────────\n\nVM 部署强化(Dockerfile/compose/vm-deploy.sh/check-vm-deploy.mjs、restore/\ndrill/rollback)、移动端导航 MobileNav、客户方案域后端与验收测试、\n角色权限与模块对接门禁、方案蓝图与验收记录等。这批未经逐项复核,\n如需单独审阅可 `git reset --soft HEAD~1` 后重新拆分。\n\n── 证据(本地工作区,2026-07-31,工作区 dirty)──────────────────\npnpm check ✅ 5/5\npnpm check:runtime ✅ 83 用例 / 0 失败(地板 79→83)\npnpm check:ui ✅ 8 用例 / 0 失败(地板 7→8)\nownTestCases 地板 90→91。未推送、无远端 CI 运行证据(G14 仍 OPEN)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/a015400b8aa901246315eb213d20354d6ded3133","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T06:13:59-07:00","added":["apps/web/src/components/MobileNav.tsx","docs/audit/2026-07-30-customer-solutions-acceptance.md","reports/vm-deploy.latest.json","scripts/check-vm-deploy.mjs"],"removed":[],"modified":[".claude/launch.json",".gitignore","CLAUDE.md","apps/api-fastify/src/modules/customer-solutions/customer-solutions.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/features/customer-solutions/components/CustomerSolutionWorkbench.tsx","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain/customer-solution-design-blueprint.md","package.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/solution.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-module-integration.mjs","scripts/check-role-permissions.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/vm-deploy.sh"]}],"total_commits":0,"head_commit":{"id":"9618d78da3e668f14e3c1611d7090f45eef0c085","message":"Merge pull request #1: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录\n\nfix: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/9618d78da3e668f14e3c1611d7090f45eef0c085","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-07-31T06:46:17-07:00","added":["apps/api-fastify/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-fastify/src/modules/customer-solutions/customer-solutions.service.ts","apps/api-fastify/src/routes/customer-solutions.ts","apps/api-nestjs/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-nestjs/src/customer-solutions/customer-solutions.controller.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.module.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.service.ts","apps/web/src/app/solution/[accessToken]/page.tsx","apps/web/src/components/MobileNav.tsx","apps/web/src/features/customer-solutions/api/customer-solutions-api.ts","apps/web/src/features/customer-solutions/components/CustomerSolutionWorkbench.tsx","apps/web/src/features/customer-solutions/components/PublicCustomerSolutionView.tsx","apps/web/src/features/customer-solutions/hooks/use-customer-solutions.ts","apps/web/src/features/customer-solutions/lib/floor-plan-analysis.ts","apps/web/src/store/solution-ui.ts","artifacts/project-promo-posters/01-smart-business.png","artifacts/project-promo-posters/02-flow-hub.png","artifacts/project-promo-posters/03-trusted-governance.png","artifacts/project-promo-posters/04-neon-tech.png","docs/audit/2026-07-30-customer-solutions-acceptance.md","docs/audit/2026-07-30-deep-audit.md","docs/domain/customer-solution-design-blueprint.md","packages/contracts/src/solution.ts","reports/gate-selftest.latest.json","reports/module-integration.latest.json","reports/vm-deploy.latest.json","scripts/check-gate-selftest.mjs","scripts/check-module-integration.mjs","scripts/check-vm-deploy.mjs","scripts/lib/report-provenance.test.mjs","scripts/lib/vitest-report.mjs","scripts/lib/vitest-report.test.mjs"],"removed":[],"modified":[".claude/launch.json",".gitignore","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/tsconfig.json","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain-glossary.md","docs/domain/order-fulfillment-blueprint.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/realtime.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-role-permissions.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","scripts/vm-deploy.sh"]},"repository":{"id":72,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":4183,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-07-31T21:39:41+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1785505645
|
1785505725
|
0
|
1785505645
|
1785505725
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
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
|
|
23460
|
docs(governance): record Gitea publish baseline
|
54
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
94e3f1b529034c902d205637ed69033238b5b594
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"da8f52db37f5b42d035f92ad27a45067bc57dfa9","after":"94e3f1b529034c902d205637ed69033238b5b594","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/da8f52db37f5b42d035f92ad27a45067bc57dfa9...94e3f1b529034c902d205637ed69033238b5b594","commits":[{"id":"94e3f1b529034c902d205637ed69033238b5b594","message":"docs(governance): record Gitea publish baseline\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/94e3f1b529034c902d205637ed69033238b5b594","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:41:37-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"94e3f1b529034c902d205637ed69033238b5b594","message":"docs(governance): record Gitea publish baseline\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/94e3f1b529034c902d205637ed69033238b5b594","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:41:37-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},"repository":{"id":54,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":995,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-07-30T22:40:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1785422514
|
1785422567
|
0
|
1785422513
|
1785422567
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23442
|
fix(governance): snapshot report inputs before run fix(governance): snapshot report inputs before runners...
|
64
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
b0381bdeb68a35d172581d6736b9059720e3ad1b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"91550451861f997024b06c845897ea59af85e238","after":"b0381bdeb68a35d172581d6736b9059720e3ad1b","compare_url":"https://gitea.g-hi.com/luoanwu/voice-conversion/compare/91550451861f997024b06c845897ea59af85e238...b0381bdeb68a35d172581d6736b9059720e3ad1b","commits":[{"id":"b0381bdeb68a35d172581d6736b9059720e3ad1b","message":"fix(governance): snapshot report inputs before runners\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/b0381bdeb68a35d172581d6736b9059720e3ad1b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:34:03-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-report-provenance.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/report-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"b0381bdeb68a35d172581d6736b9059720e3ad1b","message":"fix(governance): snapshot report inputs before runners\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/b0381bdeb68a35d172581d6736b9059720e3ad1b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:34:03-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-report-provenance.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/report-provenance.mjs"]},"repository":{"id":64,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voice-conversion","full_name":"luoanwu/voice-conversion","description":"SoulX-Singer personal singing voice conversion platform","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":907,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion/languages","html_url":"https://gitea.g-hi.com/luoanwu/voice-conversion","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voice-conversion.git","clone_url":"https://gitea.g-hi.com/luoanwu/voice-conversion.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-22T14:37:12+08:00","updated_at":"2026-07-22T15:25:37+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784705658
|
1784705716
|
0
|
1784705657
|
1784705716
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23432
|
Harden recording release E2E assertion
|
62
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
3d3d1a4d8c4ab00b1cefbc239838007a04296172
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"73bd623dfedff79a02fac961d1c16f106137e2df","after":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/73bd623dfedff79a02fac961d1c16f106137e2df...3d3d1a4d8c4ab00b1cefbc239838007a04296172","commits":[{"id":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","message":"Harden recording release E2E assertion\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3d3d1a4d8c4ab00b1cefbc239838007a04296172","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T18:58:06-07:00","added":[],"removed":[],"modified":[".gitignore","apps/web/e2e/acceptance.spec.ts","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","message":"Harden recording release E2E assertion\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3d3d1a4d8c4ab00b1cefbc239838007a04296172","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T18:58:06-07:00","added":[],"removed":[],"modified":[".gitignore","apps/web/e2e/acceptance.spec.ts","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":62,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1460,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-15T08:42:42+08:00","updated_at":"2026-07-22T01:13:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784685492
|
1784685545
|
0
|
1784685491
|
1784685545
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23417
|
C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stde C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stderr)...
|
60
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
6d7311f3c50d0894683ed1b0681f23bde45a35c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"262802ed1be2f708784260d2fd49e110a9c365f9","after":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/262802ed1be2f708784260d2fd49e110a9c365f9...6d7311f3c50d0894683ed1b0681f23bde45a35c4","commits":[{"id":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","message":"C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stderr)\n\n远端 api-fastify#test 失败但 CI 日志只有 turbo 的「exited (1)」——失败步\n此前只打 stderrTail,vitest 具体失败用例(stdout 经 turbo 转发)全部丢失。\n失败时补打 stdout 尾巴(test 步扩到 12KB),远端判责不再需要登机。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/6d7311f3c50d0894683ed1b0681f23bde45a35c4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:49:21-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","message":"C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stderr)\n\n远端 api-fastify#test 失败但 CI 日志只有 turbo 的「exited (1)」——失败步\n此前只打 stderrTail,vitest 具体失败用例(stdout 经 turbo 转发)全部丢失。\n失败时补打 stdout 尾巴(test 步扩到 12KB),远端判责不再需要登机。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/6d7311f3c50d0894683ed1b0681f23bde45a35c4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:49:21-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]},"repository":{"id":60,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3860,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T14:40:00+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784011769
|
1784011850
|
0
|
1784011767
|
1784011850
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26669
|
feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vecto feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vector 向量出站收口到 ModelPort...
|
160
|
5
|
ci.yml
|
6
|
5
|
0
|
refs/heads/main
|
b0b7ddc80b20bf61675f5afea0d41764e8cfa770
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b581d18e4449cb04a547e46807641a4c991417e7","after":"b0b7ddc80b20bf61675f5afea0d41764e8cfa770","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/b581d18e4449cb04a547e46807641a4c991417e7...b0b7ddc80b20bf61675f5afea0d41764e8cfa770","commits":[{"id":"b0b7ddc80b20bf61675f5afea0d41764e8cfa770","message":"feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vector 向量出站收口到 ModelPort\n\n04 M7 对调用方的合同是候选 ai-route.v1(@juhai/client-ai rc.8):先申请路由决策,\nprovider=litellm 时交平台 invoke 执行。原 AI_GATEWAY_BASE_URL 只换基址,对不上,\n另写 ModelPort 实现,网关开关保持原样:\n\n- shared/ai/eios-ai-route-model-port.ts:route → invoke,形状、决策判据与 baseUrl 规则\n 逐字段对齐 04 client-ai 源码;拒绝、形状不对、远端错误、不可达一律抛\n EiosAiRouteError,不回退直连;非 litellm 路由上报 released 释放预留后拒绝;\n invoke 承接不了的请求(工具、JSON 模式、图片、扩展请求体、embedding、流式)\n 默认拒绝且不发路由请求,EIOS_AI_ROUTE_UNSUPPORTED=direct 才交回默认实现。\n- config/eios/ai.ts 新增 EIOS_AI_ROUTE_*(默认 off);install-eios-adapters 新增\n aiRoute,参数齐全才 setModelPort。\n- model-port.ts:对话请求加可选 governance;新增可选 embedBatch 与 embedTexts。\n- knowledge-vector 的 4 处 /embeddings 直连改经 ModelPort,错误文案不变,向量数\n 不符判失败;lint 规则扩到 /embeddings 结尾的字面量。\n\n测试新增 13 项(loopback 夹具与假端口,未连真实 04)。读数:type-check 0 错误;\nlint 0 错误、3189 条警告;单测 8981/8997(17 项基线失败);inventory 10 项一致。\n文档:lanes/ai.md §3.3 与 §6、README、改造计划 P1 执行状态、总设计 B-06 行号、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b0b7ddc80b20bf61675f5afea0d41764e8cfa770","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-29T23:43:33-07:00","added":["backend/src/modules/knowledge-capture/knowledge-vector.service.test.ts","backend/src/shared/ai/eios-ai-route-model-port.test.ts","backend/src/shared/ai/eios-ai-route-model-port.ts"],"removed":[],"modified":[".env.eios.example","backend/.eslintrc.cjs","backend/src/config/eios/ai.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/shared/ai/model-port.ts","backend/src/shared/ports/install-eios-adapters.test.ts","backend/src/shared/ports/install-eios-adapters.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/ai-modules.md","docs/eios-transformation/inventory/dead-code-and-root.md","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/ai.md","docs/eios-transformation/总设计-2026-10-27.md","docs/eios-transformation/改造计划-2026-10-28.md"]}],"total_commits":0,"head_commit":{"id":"b0b7ddc80b20bf61675f5afea0d41764e8cfa770","message":"feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vector 向量出站收口到 ModelPort\n\n04 M7 对调用方的合同是候选 ai-route.v1(@juhai/client-ai rc.8):先申请路由决策,\nprovider=litellm 时交平台 invoke 执行。原 AI_GATEWAY_BASE_URL 只换基址,对不上,\n另写 ModelPort 实现,网关开关保持原样:\n\n- shared/ai/eios-ai-route-model-port.ts:route → invoke,形状、决策判据与 baseUrl 规则\n 逐字段对齐 04 client-ai 源码;拒绝、形状不对、远端错误、不可达一律抛\n EiosAiRouteError,不回退直连;非 litellm 路由上报 released 释放预留后拒绝;\n invoke 承接不了的请求(工具、JSON 模式、图片、扩展请求体、embedding、流式)\n 默认拒绝且不发路由请求,EIOS_AI_ROUTE_UNSUPPORTED=direct 才交回默认实现。\n- config/eios/ai.ts 新增 EIOS_AI_ROUTE_*(默认 off);install-eios-adapters 新增\n aiRoute,参数齐全才 setModelPort。\n- model-port.ts:对话请求加可选 governance;新增可选 embedBatch 与 embedTexts。\n- knowledge-vector 的 4 处 /embeddings 直连改经 ModelPort,错误文案不变,向量数\n 不符判失败;lint 规则扩到 /embeddings 结尾的字面量。\n\n测试新增 13 项(loopback 夹具与假端口,未连真实 04)。读数:type-check 0 错误;\nlint 0 错误、3189 条警告;单测 8981/8997(17 项基线失败);inventory 10 项一致。\n文档:lanes/ai.md §3.3 与 §6、README、改造计划 P1 执行状态、总设计 B-06 行号、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b0b7ddc80b20bf61675f5afea0d41764e8cfa770","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-29T23:43:33-07:00","added":["backend/src/modules/knowledge-capture/knowledge-vector.service.test.ts","backend/src/shared/ai/eios-ai-route-model-port.test.ts","backend/src/shared/ai/eios-ai-route-model-port.ts"],"removed":[],"modified":[".env.eios.example","backend/.eslintrc.cjs","backend/src/config/eios/ai.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/shared/ai/model-port.ts","backend/src/shared/ports/install-eios-adapters.test.ts","backend/src/shared/ports/install-eios-adapters.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/ai-modules.md","docs/eios-transformation/inventory/dead-code-and-root.md","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/ai.md","docs/eios-transformation/总设计-2026-10-27.md","docs/eios-transformation/改造计划-2026-10-28.md"]},"repository":{"id":160,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub-eios","full_name":"luoanwu/juhi-omni-knowledge-hub-eios","description":"巨嗨全域智库 EIOS 化独立改造仓(由本地改造副本推送;原 luoanwu/juhi-omni-knowledge-hub 不动)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2102295,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub-eios.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"eios/w0","archived":false,"created_at":"2026-10-30T09:22:23+08:00","updated_at":"2026-10-30T14:07:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1793343643
|
1793347854
|
0
|
1793343457
|
1793347854
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
26218
|
test: record shared retrieval boundary and native test: record shared retrieval boundary and native acceptance evidence...
|
84
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
bd10e2e68002ae13667fb76ecc1177e179996146
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db93444d86694304ad66fc4d51864c6d89860f85","after":"bd10e2e68002ae13667fb76ecc1177e179996146","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/db93444d86694304ad66fc4d51864c6d89860f85...bd10e2e68002ae13667fb76ecc1177e179996146","commits":[{"id":"bd10e2e68002ae13667fb76ecc1177e179996146","message":"test: record shared retrieval boundary and native acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/bd10e2e68002ae13667fb76ecc1177e179996146","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T07:00:03-07:00","added":["reports/shared-retrieval-boundary.latest.json"],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"65dddcfc06d5ac4a694e74e3b43a455bb748f993","message":"docs: refresh current retrieval acceptance counts and evidence scope\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/65dddcfc06d5ac4a694e74e3b43a455bb748f993","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T06:55:31-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"6c21d91704da6ca4ed459bbdf05dba678e650252","message":"fix(governance): remove all matching counters in failure probe\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/6c21d91704da6ca4ed459bbdf05dba678e650252","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T06:52:23-07:00","added":[],"removed":[],"modified":["docs/shared-retrieval-boundary.md","scripts/check-runtime-failure-coverage.mjs"]},{"id":"5bbb68c3bdadc6b62752432539298fd87cd1bfd0","message":"fix(retrieval): enforce tenant and source integrity before recall\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/5bbb68c3bdadc6b62752432539298fd87cd1bfd0","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T06:47:11-07:00","added":["docs/shared-retrieval-boundary.md","packages/knowledge-retrieval/src/boundary.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/README.md","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"bd10e2e68002ae13667fb76ecc1177e179996146","message":"test: record shared retrieval boundary and native acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/bd10e2e68002ae13667fb76ecc1177e179996146","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T07:00:03-07:00","added":["reports/shared-retrieval-boundary.latest.json"],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-kit.latest.json","reports/governance.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":84,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-knowledge-cloud","full_name":"luoanwu/juhai-knowledge-cloud","description":"巨嗨知识云:受治理的知识唯一真源与混合证据检索","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1894,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:45:53+08:00","updated_at":"2026-10-20T15:50:49+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1792505364
|
1792505374
|
0
|
1792505363
|
1792505374
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26086
|
docs(device): bind final S2 fixed artifact verific docs(device): bind final S2 fixed artifact verification...
|
135
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
8a42cf77069e4a70692e366281b75ab8848f3e7c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4b39ba2e2da24a46314e9d171f4c3636d023290d","after":"8a42cf77069e4a70692e366281b75ab8848f3e7c","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/compare/4b39ba2e2da24a46314e9d171f4c3636d023290d...8a42cf77069e4a70692e366281b75ab8848f3e7c","commits":[{"id":"8a42cf77069e4a70692e366281b75ab8848f3e7c","message":"docs(device): bind final S2 fixed artifact verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/8a42cf77069e4a70692e366281b75ab8848f3e7c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T04:04:18-07:00","added":["reports/s2-candidate.latest.json"],"removed":[],"modified":["reports/evidence-current.latest.json"]}],"total_commits":0,"head_commit":{"id":"8a42cf77069e4a70692e366281b75ab8848f3e7c","message":"docs(device): bind final S2 fixed artifact verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/8a42cf77069e4a70692e366281b75ab8848f3e7c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T04:04:18-07:00","added":["reports/s2-candidate.latest.json"],"removed":[],"modified":["reports/evidence-current.latest.json"]},"repository":{"id":135,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-thing-cloud","full_name":"luoanwu/juhai-thing-cloud","description":"物云:02「物」域应用,自设备云 juhai-device-cloud 4652ce0 分叉","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2119,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-thing-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-12T21:14:44+08:00","updated_at":"2026-10-18T19:02:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
5
|
0
|
1792321736
|
0
|
1792321485
|
1792321736
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
25776
|
docs: 记录 P12 云测归因与 E2a 验证结果
|
125
|
16
|
verify.yml
|
6
|
16
|
0
|
refs/heads/main
|
85e2c17b4829f451e34f938ca6c11354a0b17f30
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"faac5481c1cca66e4708222686b6588a43938150","after":"85e2c17b4829f451e34f938ca6c11354a0b17f30","compare_url":"https://gitea.g-hi.com/pengzhiyu/IAM/compare/faac5481c1cca66e4708222686b6588a43938150...85e2c17b4829f451e34f938ca6c11354a0b17f30","commits":[{"id":"85e2c17b4829f451e34f938ca6c11354a0b17f30","message":"docs: 记录 P12 云测归因与 E2a 验证结果\n\n归档原两份任务文档中累计的候选验证、单轮云测、持有成本分析和 E2a 实施记录,保持历史失败及授权边界可追溯。\n\n实现内容:\n- 记录 50 次入口拒绝的真实关联证据与尚未验收的容量目标\n- 记录三个期限检查点计时的实现、首例测试修正和独立提交\n- 区分历史完整检查、共享报告覆盖与当前组合的定向复验\n- 更新当前状态并说明下一步隔离候选验证建议\n\n验证:\n- 文件摘要、独立执行日志和实际提交内容核对通过\n- 当前组合定向 28 项单测、18 项集成及 26 项 Python 测试通过\n- 文档差异、相对文件链接和 git diff --check 检查通过\n- 本次不新增完整构建、候选冻结或云测结果\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/85e2c17b4829f451e34f938ca6c11354a0b17f30","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:42:04-07:00","added":[],"removed":[],"modified":["docs/tasks/P12-auth-ingress-attribution-design.md","docs/tasks/P12-software-optimization.md"]},{"id":"536e36cfae600b8bbdc378012e723ffbbd34a491","message":"feat(protocol): 增加刷新期限检查点诊断计时\n\n现有粗阶段无法区分三次期限复核的耗时,为后续容量归因补齐固定观测。\n\n实现内容:\n- 在原 P0/P1/P2 检查处分别计时,保留 SQL、事务、期限及回滚顺序\n- 同步诊断读取白名单,保留旧记录的阶段缺失语义\n- 覆盖嵌套计时、导出大小、检查短路、迟到期回滚和旧记录兼容\n\n验证:\n- Java 25 离线 Maven 定向 verify:AuthRequestDiagnosticsTest、RefreshExpiryGuardTest、CapacityDiagnosticsTest、AuthDiagnosticsTestProbeTest 共 28 项单测及 RefreshExpiryLifecycleIT 18 项集成全部通过\n- python3 -m unittest discover -s scripts/capacity -p 'test_*.py':26 项通过\n- Spotless、编译、打包及 git diff --check 通过\n- 本次提交前未重跑完整后端或控制台检查,不将此前完整结果当作当前全部组合的重新验收\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/536e36cfae600b8bbdc378012e723ffbbd34a491","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:40:04-07:00","added":[],"removed":[],"modified":["iam-server/src/main/java/com/iam/server/protocol/RefreshExpiryGuard.java","iam-server/src/main/java/com/iam/server/protocol/RefreshGovernance.java","iam-server/src/main/java/com/iam/server/security/AuthRequestDiagnostics.java","iam-server/src/test/java/com/iam/server/protocol/CapacityDiagnosticsTest.java","iam-server/src/test/java/com/iam/server/protocol/RefreshExpiryGuardTest.java","iam-server/src/test/java/com/iam/server/protocol/RefreshExpiryLifecycleIT.java","iam-server/src/test/java/com/iam/server/security/AuthRequestDiagnosticsTest.java","scripts/capacity/auth_diagnostics.py","scripts/capacity/test_auth_diagnostics.py"]},{"id":"a435000ebba0784762f27ae3f1a04e1159cf0617","message":"feat: 增加权限说明与审计操作对象快照\n\n为控制台权限清单提供使用说明,并让操作记录在对象改名或归档后仍能识别操作对象。\n\n实现内容:\n- 新增 V29 迁移及可空权限说明,支持完整替换、输入校验和新旧清单摘要兼容\n- 平台与企业目录返回说明,保持本人有效权限代码集合不变\n- 在业务事务内保存受控对象代码快照,审计列表和详情增加类型、名称和展示摘要\n- 校验事件与对象类型匹配,保留旧摘要、安全投影和企业访问边界\n- 补充迁移、接口和审计安全测试,同步接口合同、数据字典与前端接入说明\n\n验证:\n- Java 25 下执行 ./mvnw -B -ntp -pl iam-server -am -Dit.test=PermissionDescriptionIT,AuditReadIT,AuthorizationIT,GroupLifecycleIT,MigrationIT,FoundationIT -Dfailsafe.failIfNoSpecifiedTests=false verify:通过\n- Java 25 下执行 ./mvnw -B -ntp -pl iam-server -am -Dit.test=AuditReadIT,AuthorizationMigrationIT,ApplicationLifecycleUpgradeIT,MachineCredentialUpgradeIT,AuditRetentionIT -Dfailsafe.failIfNoSpecifiedTests=false verify:通过\n- Java 25 下执行 ./mvnw -B -ntp -pl iam-server -am -Dit.test=AuditReadIT,GroupLifecycleIT -Dfailsafe.failIfNoSpecifiedTests=false verify:通过\n- 三轮去重共 180 个单元测试、83 个集成测试通过,格式检查、编译和打包通过\n- 权限清单 JSON Schema 语法校验及 git diff --check 通过\n- 未执行前端浏览器接入验证,未重启演示环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/a435000ebba0784762f27ae3f1a04e1159cf0617","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:36:49-07:00","added":["docs/console/permission-description-audit-target-handoff.md","iam-server/src/main/java/com/iam/server/accounts/AuditTargetSnapshot.java","iam-server/src/main/resources/db/migration/V29__permission_description.sql","iam-server/src/test/java/com/iam/server/protocol/PermissionDescriptionIT.java"],"removed":[],"modified":["docs/audit-security.md","docs/authorization.md","docs/data-foundation.md","docs/schemas/permission-catalog.schema.json","iam-server/src/main/java/com/iam/server/accounts/AccountStore.java","iam-server/src/main/java/com/iam/server/accounts/AuditReadService.java","iam-server/src/main/java/com/iam/server/accounts/AuthorizationService.java","iam-server/src/test/java/com/iam/server/data/AuthorizationMigrationIT.java","iam-server/src/test/java/com/iam/server/data/MigrationIT.java","iam-server/src/test/java/com/iam/server/protocol/AuditReadIT.java"]}],"total_commits":0,"head_commit":{"id":"85e2c17b4829f451e34f938ca6c11354a0b17f30","message":"docs: 记录 P12 云测归因与 E2a 验证结果\n\n归档原两份任务文档中累计的候选验证、单轮云测、持有成本分析和 E2a 实施记录,保持历史失败及授权边界可追溯。\n\n实现内容:\n- 记录 50 次入口拒绝的真实关联证据与尚未验收的容量目标\n- 记录三个期限检查点计时的实现、首例测试修正和独立提交\n- 区分历史完整检查、共享报告覆盖与当前组合的定向复验\n- 更新当前状态并说明下一步隔离候选验证建议\n\n验证:\n- 文件摘要、独立执行日志和实际提交内容核对通过\n- 当前组合定向 28 项单测、18 项集成及 26 项 Python 测试通过\n- 文档差异、相对文件链接和 git diff --check 检查通过\n- 本次不新增完整构建、候选冻结或云测结果\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/85e2c17b4829f451e34f938ca6c11354a0b17f30","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:42:04-07:00","added":[],"removed":[],"modified":["docs/tasks/P12-auth-ingress-attribution-design.md","docs/tasks/P12-software-optimization.md"]},"repository":{"id":125,"owner":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"228834386@qq.com","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"pengzhiyu"},"name":"IAM","full_name":"pengzhiyu/IAM","description":"Identity and Access Management(身份识别与访问管理)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":101474,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM/languages","html_url":"https://gitea.g-hi.com/pengzhiyu/IAM","url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM","link":"","ssh_url":"git@gitea.g-hi.com:pengzhiyu/IAM.git","clone_url":"https://gitea.g-hi.com/pengzhiyu/IAM.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-08T17:04:24+08:00","updated_at":"2026-10-12T23:15:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"pengzhiyu"},"sender":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"pengzhiyu"}}...
|
push
|
2
|
4
|
1791872390
|
1791872617
|
0
|
1791852703
|
1791872617
|
|
|
0
|
Edit
Delete
|
|
25696
|
Update README.md
|
139
|
5
|
codeql-analysis.yml
|
6
|
5
|
0
|
refs/tags/v2.0.1
|
1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.0.1","bef {"ref":"refs/tags/v2.0.1","before":"0000000000000000000000000000000000000000","after":"1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","compare_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/compare/0000000000000000000000000000000000000000...1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","commits":[],"total_commits":0,"head_commit":{"id":"1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","message":"Update README.md","url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/commit/1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-15T12:35:21+02:00","added":[],"removed":[],"modified":["README.md"]},"repository":{"id":139,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-download-artifact","full_name":"luoanwu/actions-download-artifact","description":"Mirror of github.com/actions/download-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-download-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:37:23+08:00","updated_at":"2026-10-13T06:38:59+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1791854114
|
1791854145
|
0
|
1791844740
|
1791854145
|
|
|
0
|
Edit
Delete
|
|
25684
|
Detect case insensitive uploads + Bump @actions/ar Detect case insensitive uploads + Bump @actions/artifact to version 0.3.3 (#106)...
|
138
|
5
|
codeql-analysis.yml
|
6
|
5
|
0
|
refs/tags/v2.1.2
|
c8879bf5aef7bef66f9b82b197f34c4eeeb1731b
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.1.2","bef {"ref":"refs/tags/v2.1.2","before":"0000000000000000000000000000000000000000","after":"c8879bf5aef7bef66f9b82b197f34c4eeeb1731b","compare_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/compare/0000000000000000000000000000000000000000...c8879bf5aef7bef66f9b82b197f34c4eeeb1731b","commits":[],"total_commits":0,"head_commit":{"id":"c8879bf5aef7bef66f9b82b197f34c4eeeb1731b","message":"Detect case insensitive uploads + Bump @actions/artifact to version 0.3.3 (#106)\n\n* Detect case insensitive uploads\r\n\r\n* PR feedback","url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/commit/c8879bf5aef7bef66f9b82b197f34c4eeeb1731b","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-31T19:22:08+02:00","added":[],"removed":[],"modified":["README.md","dist/index.js","package-lock.json","package.json","src/search.ts"]},"repository":{"id":138,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-upload-artifact","full_name":"luoanwu/actions-upload-artifact","description":"Mirror of github.com/actions/upload-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-upload-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:37:06+08:00","updated_at":"2026-10-13T06:38:47+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1791850424
|
1791850514
|
0
|
1791844728
|
1791850514
|
|
|
0
|
Edit
Delete
|
|
25667
|
Bump eslint from 10.5.0 to 10.11.0 and package.jso Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)...
|
137
|
5
|
proxy.yml
|
6
|
5
|
0
|
refs/heads/main
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"949feb2413d6458794dcd2491c4babbbce0c15c1","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/d1fcc24e82935aad3ffaca8fa0af970179d4da3c...949feb2413d6458794dcd2491c4babbbce0c15c1","commits":[{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","message":"chore: update dependencies and add license files (#1642)\n\n* chore: update dependencies and add license files\n\n- Bump @actions/cache from 6.2.0 to 6.3.0 in package.json and package-lock.json\n- Update @actions/glob from 0.6.1 to 0.7.0 in package-lock.json\n- Update brace-expansion from 5.0.9 to 5.0.12 in package.json and package-lock.json\n- Bump undici from 6.28.0 to 6.29.0 in package-lock.json\n- Add license files for @actions/glob and minimatch dependencies\n\n* chore: update minimatch dependency file\n\n---------\n\nCo-authored-by: HarithaVattikuti \u003c73516759+HarithaVattikuti@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","author":{"name":"Haritha","email":"73516759+v-HarithaVattikuti@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:39:15-05:00","added":[".licenses/npm/@actions/glob.dep.yml",".licenses/npm/minimatch.dep.yml"],"removed":[".licenses/npm/@actions/glob-0.6.1.dep.yml",".licenses/npm/@actions/glob-0.7.0.dep.yml",".licenses/npm/minimatch-10.2.6.dep.yml",".licenses/npm/minimatch-3.1.5.dep.yml"],"modified":[".licenses/npm/@actions/cache.dep.yml",".licenses/npm/brace-expansion.dep.yml",".licenses/npm/undici.dep.yml","dist/cache-save/index.js","dist/setup/index.js","package-lock.json","package.json"]},{"id":"54337e0d02de9202d0948aaff36ad556375497b9","message":"Bump eslint-plugin-n from 18.1.0 to 18.3.0 (#1638)\n\nBumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 18.1.0 to 18.3.0.\n- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)\n- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v18.1.0...v18.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint-plugin-n\n dependency-version: 18.3.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/54337e0d02de9202d0948aaff36ad556375497b9","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:45:08-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","message":"Bump jest-each from 30.4.1 to 30.5.2 (#1636)\n\nBumps [jest-each](https://github.com/jestjs/jest/tree/HEAD/packages/jest-each) from 30.4.1 to 30.5.2.\n- [Release notes](https://github.com/jestjs/jest/releases)\n- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest-each)\n\n---\nupdated-dependencies:\n- dependency-name: jest-each\n dependency-version: 30.5.2\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:44:20-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7f84f1d52d0c56afb45c62fee31a93b843cea4d6","message":"Bump pnpm/action-setup from 6.0.10 to 6.1.0 (#1631)\n\nBumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 6.0.10 to 6.1.0.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/0977fd99725f1db4007ccb2928dbb4e90d06cc86...ea17c68df8912ef543352723c149a84f56e3d413)\n\n---\nupdated-dependencies:\n- dependency-name: pnpm/action-setup\n dependency-version: 6.1.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7f84f1d52d0c56afb45c62fee31a93b843cea4d6","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-25T16:05:28-05:00","added":[],"removed":[],"modified":[".github/workflows/e2e-cache.yml"]}],"total_commits":0,"head_commit":{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1791846458
|
1791846519
|
0
|
1791844717
|
1791846519
|
|
|
0
|
Edit
Delete
|
|
25652
|
chore(chg036): merge CHG-034 stack history and ref chore(chg036): merge CHG-034 stack history and refresh declarations...
|
133
|
5
|
infra.yml
|
6
|
5
|
0
|
refs/heads/main
|
fbc127c8341c596329f98fb1f9eb8f17e210a07e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4a41adae67bcf5be2d98b33d6257c0a6de632d69","after":"fbc127c8341c596329f98fb1f9eb8f17e210a07e","compare_url":"https://gitea.g-hi.com/luoanwu/infra/compare/4a41adae67bcf5be2d98b33d6257c0a6de632d69...fbc127c8341c596329f98fb1f9eb8f17e210a07e","commits":[{"id":"fbc127c8341c596329f98fb1f9eb8f17e210a07e","message":"chore(chg036): merge CHG-034 stack history and refresh declarations\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/fbc127c8341c596329f98fb1f9eb8f17e210a07e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-12T15:12:45-07:00","added":[],"removed":[],"modified":["caddy/Caddyfile","compose.yaml","declarations/SOURCE.json","declarations/caddy-routes.json","declarations/modules.json","docs/迁出方案.md","provision/openbao-provision.json","provision/redis-dbs.json","provision/redpanda-topics.json"]},{"id":"c673ed2d02b23a2eb750cbaf89b357c383cb6418","message":"refactor(catalog): CHG-034 数字员工OS 更名为数字智能层(digital-intelligence-layer)\n\n- Catalog 项目 id、EmploymentTransferred 消费者、AppManifest 草案与用量投影契约改为新标识;fact catalogFingerprint 同步\n- 契约 id os-usage-projection-api.v1 → dil-usage-projection-api.v1(modules.json、cost-capacity、caddy-routes;网关前缀 /api/v1/cost/ 不变)\n- stack/provision:OpenBao 应用列表、Redis 库说明、Redpanda 重放 topic 与消费组名;测试、夹具、注释与文档用词同步\n- 不改:已发布 Schema 与生成代码、已应用迁移、decisions.json、docs/报告/证据、ERK 固定快照、工作区目录路径、\n os-product 协议名、凭据台账 stack/credentials/、带日期的现存资源名、旧栈卷名、2026-08 移植回灌等历史记录行\n- 用户 2026-10-12 以 Catalog Owner 签署:硬切(运行库旧登记观察期保留,A2 新增新 id 登记),现在合入\n- 生成:在 4bfc0b81 上重放 03 切换执行/工具/rename-cp.py(03 233f219)与 sync-fact-schema-digests --write\n- 材料:平台治理/doc/decisions/CHG-034-材料/(治理仓 65a87a4)\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/c673ed2d02b23a2eb750cbaf89b357c383cb6418","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-12T08:36:20-07:00","added":[],"removed":[],"modified":["provision/openbao-provision.json","provision/redis-dbs.json","provision/redpanda-topics.json"]},{"id":"12d40ebb94d7948d7307f017585450996f513bbc","message":"feat(workbench): EES 只读宿主接入工作台——第 19 个探针、语义目录实时读取与 /ees/* 入口路由\n\nC1 首消费者(只读正式宿主 H2/O1/I1/C1 批准记录 §5)的工作台侧实现:\n- 运行信息页新增「受托独立服务」:经入口读 EES 公开就绪探针 /ees/health/ready(不带令牌),\n 计入「读取全部 N 个探针」(dev 为 18 + 1);200+ready 就绪、503 未就绪、502/404 探测失败。\n 同源前缀登记在 features/platform/hosted-services.ts,未登记的受托服务不探测。\n- EES 服务工作区「语义目录」:登录后点按钮经 /ees/api/v1/semantics/* 读取三个语义读操作\n (按游标读完,页数有上限),对照快照 catalogRevision;401/403/404/503 各给说明,\n EES 拒绝不清平台会话;未登录不渲染,标签内容与快照逐字一致(MW-07 不变)。\n- stack/caddy/Caddyfile:handle /ees/* + uri strip_prefix 转发 {$PLATFORM_EES_UPSTREAM:host.docker.internal:4432};\n 不用 handle_path(排在全部 handle 之后,会被工作台兜底抢先)。check:caddy 与 caddy validate 通过。\n- 用例:RT-06(受托探针计数、不带令牌、502 探测失败)、MW-22(实时读取、游标、拒绝说明、会话保留),\n check-workbench-ui REQUIRED_CASES 92 → 94;MW-06 的服务入口文字随概览更新。\n- 文档:runbook 新增「EES 只读正式宿主接入工作台」(含换工作台客户端时两条单值 OIDC 信任的连带改动);\n formal-host README 补工作台接入。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/12d40ebb94d7948d7307f017585450996f513bbc","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T19:06:09-07:00","added":[],"removed":[],"modified":["caddy/Caddyfile"]},{"id":"45363b29810308fee90f67a8ccad12d4453507cd","message":"Merge remote-tracking branch 'origin/main' into claude/ees-ktv-c1-20261011\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/45363b29810308fee90f67a8ccad12d4453507cd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:32:37-07:00","added":[],"removed":[],"modified":["backup/managed-backup.py","backup/test_managed_backup.py","release-candidate.schema.json"]},{"id":"0da7d0b960ffa4014061df6297eca8908196d38e","message":"feat(permission): 决策接口新增 Human OIDC 入口,供 EES HUMAN_REQUEST_TOKEN 画像调用\n\n- 新 env PLATFORM_DECISION_HUMAN_OIDC_TRUSTS:1..8 条 {issuer, audience, endpointOrigin?},\n 逐条沿用角色管理入口的校验(开发环境才允许回环 HTTP;staging/production 拒绝),重复或非法即\n DECISION_HUMAN_ENTRY_TRUST_INVALID 启动失败;未设即关闭,行为不变\n- DecisionHumanEntryVerifier 只处理 POST /api/v1/decisions:令牌声明的 (iss, aud) 命中登记才接手,\n 按固定信任完整验签并逐请求 UserInfo 回查,失败直接拒绝、不回落;未命中交回原链(machine / 通用 JWT 不变)\n- 决策适配器:经此入口时请求体 actor 须为 human/oidc,actor_id、client_id、session_id 逐项等于已验签\n 的 subject、clientId(OIDC 客户端)与 sid,否则 context-invalid;账本 appId 仍为 clientId\n- 角色管理入口抽出 createEntryIdentityClient 共用;compose 透传与 runbook、对接说明书同步\n- 测试:新增 5 例入口测试与 2 例适配器测试;api-nestjs typecheck 通过,相关 6 个文件 72/72;\n 对「不回落」与 sid 校验做过故意破坏的负向自检\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/0da7d0b960ffa4014061df6297eca8908196d38e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:15:16-07:00","added":[],"removed":[],"modified":["compose.yaml"]}],"total_commits":0,"head_commit":{"id":"fbc127c8341c596329f98fb1f9eb8f17e210a07e","message":"chore(chg036): merge CHG-034 stack history and refresh declarations\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/fbc127c8341c596329f98fb1f9eb8f17e210a07e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-12T15:12:45-07:00","added":[],"removed":[],"modified":["caddy/Caddyfile","compose.yaml","declarations/SOURCE.json","declarations/caddy-routes.json","declarations/modules.json","docs/迁出方案.md","provision/openbao-provision.json","provision/redis-dbs.json","provision/redpanda-topics.json"]},"repository":{"id":133,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"infra","full_name":"luoanwu/infra","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":455,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra/languages","html_url":"https://gitea.g-hi.com/luoanwu/infra","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/infra.git","clone_url":"https://gitea.g-hi.com/luoanwu/infra.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-11T21:11:15+08:00","updated_at":"2026-10-12T07:28:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
6
|
1791843203
|
1791843232
|
0
|
1791843202
|
1791843232
|
|
|
0
|
Edit
Delete
|
|
24651
|
Use explicit disposable PostgreSQL port for Gitea Use explicit disposable PostgreSQL port for Gitea runner...
|
121
|
5
|
kernel-ci.yml
|
6
|
5
|
0
|
refs/heads/main
|
ed1670dc7e6483bacae603db2f59b4b0ecddd81c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a36511f3577f8c6e3b0198eed24ed3ebef756a15","after":"ed1670dc7e6483bacae603db2f59b4b0ecddd81c","compare_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/compare/a36511f3577f8c6e3b0198eed24ed3ebef756a15...ed1670dc7e6483bacae603db2f59b4b0ecddd81c","commits":[{"id":"ed1670dc7e6483bacae603db2f59b4b0ecddd81c","message":"Use explicit disposable PostgreSQL port for Gitea runner\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/ed1670dc7e6483bacae603db2f59b4b0ecddd81c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-29T09:44:04-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]}],"total_commits":0,"head_commit":{"id":"ed1670dc7e6483bacae603db2f59b4b0ecddd81c","message":"Use explicit disposable PostgreSQL port for Gitea runner\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/ed1670dc7e6483bacae603db2f59b4b0ecddd81c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-29T09:44:04-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]},"repository":{"id":121,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"seven-domain-five-dimension-unified-model","full_name":"luoanwu/seven-domain-five-dimension-unified-model","description":"七域五维统一领域模型独立仓:领域内核、31章规范与运行记录","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":30644,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model/languages","html_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/seven-domain-five-dimension-unified-model.git","clone_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":6,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-29T05:06:56+08:00","updated_at":"2026-09-30T00:42:58+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1790700249
|
1790700263
|
0
|
1790700247
|
1790700263
|
|
|
0
|
Edit
Delete
|
|
24393
|
feat(notification): route deliveries through platf feat(notification): route deliveries through platform...
|
82
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
7e2036be8923eff41481605454411a2291d5cc7a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"601955837eb8caa25a91a2c2da96d9a06f8ea455","after":"7e2036be8923eff41481605454411a2291d5cc7a","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/601955837eb8caa25a91a2c2da96d9a06f8ea455...7e2036be8923eff41481605454411a2291d5cc7a","commits":[{"id":"7e2036be8923eff41481605454411a2291d5cc7a","message":"feat(notification): route deliveries through platform\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7e2036be8923eff41481605454411a2291d5cc7a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:05:29-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},{"id":"43c911bff4123b2a3d62b2845249caec3b3235db","message":"fix(compose): 开发基座补顶层 name,停止与另外六个仓共用 project `api-nestjs`\n\n本文件没有顶层 name,compose 便按**所在目录名**推导 project 名。它在每个仓里的路径都是\napps/api-nestjs/,于是 7 个仓推导出同一个 `api-nestjs`,共用 `api-nestjs_pgdata` /\n`_redisdata` 与同名容器——后 up 的那个直接接管先起者的容器与卷。这类冲突单仓内部永远\n判不出来,只有横着比多份 compose 才看得见,已经咬过一次(C-15)。\n\n现改为 `name: ${COMPOSE_PROJECT_NAME:-juhai-ai-work-order-system}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`juhai-ai-work-order-system_*`。\n\n数据风险已先核过再改:本机 260 个卷里**没有任何 `api-nestjs_*`**,\n`docker ps -a --filter label=com.docker.compose.project=api-nestjs` 零命中——\n这份 compose 在本机从未以默认推导名起过,没有旧卷需要迁移。(只证明本机;\n别的机器若直接 up 过,改名后首次 up 会建新空卷,旧卷需自行迁移。)\n\n工作区门禁 `平台治理/基础/scripts/check-workspace-consistency.mjs` 的\nL9 COMPOSE_PROJECT_COLLISION 在 7 个仓全部补齐后由 ISSUES 转 CLEAN(exit 0,0 issues)。\n处置依据:裁决 N-11 选项 ①。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/43c911bff4123b2a3d62b2845249caec3b3235db","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:13:31-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"7e2036be8923eff41481605454411a2291d5cc7a","message":"feat(notification): route deliveries through platform\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7e2036be8923eff41481605454411a2291d5cc7a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-23T05:05:29-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"repository":{"id":82,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1970,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:08:57+08:00","updated_at":"2026-09-19T07:07:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790167643
|
1790167734
|
0
|
1790167548
|
1790167736
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23995
|
docs(决策): CHG-016 / CHG-017 材料——DEC-010 附条件修订、C19 docs(决策): CHG-016 / CHG-017 材料——DEC-010 附条件修订、C19 范围改写(待签署后应用)...
|
117
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
101380fb8b7d4c8b1095d7f3a53cb6df5251a58f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c641151481665a321840ee8081e09101a3b74360","after":"101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/c641151481665a321840ee8081e09101a3b74360...101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","commits":[{"id":"101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","message":"docs(决策): CHG-016 / CHG-017 材料——DEC-010 附条件修订、C19 范围改写(待签署后应用)\n\n决策批次 2026-09-16 五处改案带出的两个受控变更:\n- CHG-016:DEC-010 批准记录附条件修订——Required Check 证据来源改 Gitea(B-2)、CODEOWNERS 实名不再作前置(B-1 长期代签,附代签 SOP 原文)、proposed → active 判据改为首次 staging 晋级记录(B-4);decisions.delta.json 只加 note 不改 status。\n- CHG-017:成本与容量治理平台范围并入外部客户订阅计量与出账(C-15),能力表 C19 增 C19.07 / C19.08、C02.01 扩外部客户开户路径、边界表与机器读者处置;不改活跃 Catalog,不建服务。\n批次记录 §3 登记行同步。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-16T16:29:59-07:00","added":["平台治理/doc/decisions/CHG-016-材料/README.md","平台治理/doc/decisions/CHG-016-材料/decisions.delta.json","平台治理/doc/decisions/CHG-017-材料/README.md"],"removed":[],"modified":["平台治理/doc/decisions/决策批次-2026-09-16.md"]}],"total_commits":0,"head_commit":{"id":"101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","message":"docs(决策): CHG-016 / CHG-017 材料——DEC-010 附条件修订、C19 范围改写(待签署后应用)\n\n决策批次 2026-09-16 五处改案带出的两个受控变更:\n- CHG-016:DEC-010 批准记录附条件修订——Required Check 证据来源改 Gitea(B-2)、CODEOWNERS 实名不再作前置(B-1 长期代签,附代签 SOP 原文)、proposed → active 判据改为首次 staging 晋级记录(B-4);decisions.delta.json 只加 note 不改 status。\n- CHG-017:成本与容量治理平台范围并入外部客户订阅计量与出账(C-15),能力表 C19 增 C19.07 / C19.08、C02.01 扩外部客户开户路径、边界表与机器读者处置;不改活跃 Catalog,不建服务。\n批次记录 §3 登记行同步。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-16T16:29:59-07:00","added":["平台治理/doc/decisions/CHG-016-材料/README.md","平台治理/doc/decisions/CHG-016-材料/decisions.delta.json","平台治理/doc/decisions/CHG-017-材料/README.md"],"removed":[],"modified":["平台治理/doc/decisions/决策批次-2026-09-16.md"]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":6826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-15T11:53:24+08:00","updated_at":"2026-09-17T07:27:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789601404
|
1789601855
|
0
|
1789601402
|
1789601855
|
|
|
0
|
Edit
Delete
|
|
23913
|
docs(governance): record clean RC1 consumer verifi docs(governance): record clean RC1 consumer verification...
|
83
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
caf551df74c25b3bad8b1a5540f3cc8900649b2d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c934bc46240daae849ad93cfacaa3b25c41b323f","after":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/c934bc46240daae849ad93cfacaa3b25c41b323f...caf551df74c25b3bad8b1a5540f3cc8900649b2d","commits":[{"id":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/caf551df74c25b3bad8b1a5540f3cc8900649b2d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:53:40-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["docs/platform-rc1-upgrade-2026-09-12.md"]},{"id":"c39a56fdb9dbf93e1a4623165569f225775be692","message":"chore(governance): consume platform RC1 and require contract fixtures\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c39a56fdb9dbf93e1a4623165569f225775be692","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:53:07-07:00","added":["docs/platform-rc1-upgrade-2026-09-12.md"],"removed":[],"modified":[".github/workflows/platform-governance.yml","CLAUDE.md","package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/caf551df74c25b3bad8b1a5540f3cc8900649b2d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:53:40-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["docs/platform-rc1-upgrade-2026-09-12.md"]},"repository":{"id":83,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":4056,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-12T17:48:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789221260
|
1789221289
|
0
|
1789221259
|
1789221291
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23868
|
docs: record remote regression success and existin docs: record remote regression success and existing CI blockers...
|
116
|
5
|
platform.yml
|
6
|
5
|
0
|
refs/heads/main
|
95d9793f80ea584ebb999543fbe94e9597897fe6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4","after":"95d9793f80ea584ebb999543fbe94e9597897fe6","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4...95d9793f80ea584ebb999543fbe94e9597897fe6","commits":[{"id":"95d9793f80ea584ebb999543fbe94e9597897fe6","message":"docs: record remote regression success and existing CI blockers\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/95d9793f80ea584ebb999543fbe94e9597897fe6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:07:52-07:00","added":[],"removed":[],"modified":["docs/候选校验与恢复脚本修复记录-2026-09-12.md"]},{"id":"f7a0cbbdf469957c1bd015df864bcd950e2abb0e","message":"feat(modules): M2 / M3 / M5 / M6 / M7 Planner 纯规则自派生仓迁入 src/domain(开发计划 §3A Mx-3;PF-10 / 15 / 12 / 17 / 21 的 E0 部分)\n\n- credential ← 密钥与服务身份平台 archived-20260910:machine-credential-preflight(3)+ machine-credential-lease-planner(12)\n- permission ← 统一权限平台 fa56752:permission-preflight(4)+ permission-decision-planner(13)+ employment-scope-invalidation(14)\n- fact ← 企业事实干线 b4b17ab:fact-export-planner(14)+ fact-delivery(6)\n- audit ← 企业审计平台 archived-20260910:audit-event-preflight(3)+ audit-append-planner(26)\n- ai-gateway ← AI 治理平台 archived-20260910:ai-action-governance(5)+ ai-governance-router(7)\n每个文件头注明来源仓 / 引用与\"未改语义\";测试同迁(模块 vitest 合计 107 例,加 scope 16 / kit 7);domain/index.ts 保留 *_DOMAIN_STATE=shape 并导出;\n不新增依赖(源文件只互相引用同目录 preflight);模块仍 state=shape,不建表、不接端口(端口形状 Mx-2 另提)。runtime 静态门禁 14 项 + lint + typecheck 通过。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/f7a0cbbdf469957c1bd015df864bcd950e2abb0e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:05:49-07:00","added":["runtime/modules/ai-gateway/src/domain/ai-action-governance.test.ts","runtime/modules/ai-gateway/src/domain/ai-action-governance.ts","runtime/modules/ai-gateway/src/domain/ai-governance-router.test.ts","runtime/modules/ai-gateway/src/domain/ai-governance-router.ts","runtime/modules/audit/src/domain/audit-append-planner.test.ts","runtime/modules/audit/src/domain/audit-append-planner.ts","runtime/modules/audit/src/domain/audit-event-preflight.test.ts","runtime/modules/audit/src/domain/audit-event-preflight.ts","runtime/modules/credential/src/domain/machine-credential-lease-planner.test.ts","runtime/modules/credential/src/domain/machine-credential-lease-planner.ts","runtime/modules/credential/src/domain/machine-credential-preflight.test.ts","runtime/modules/credential/src/domain/machine-credential-preflight.ts","runtime/modules/fact/src/domain/fact-delivery.test.ts","runtime/modules/fact/src/domain/fact-delivery.ts","runtime/modules/fact/src/domain/fact-export-planner.test.ts","runtime/modules/fact/src/domain/fact-export-planner.ts","runtime/modules/permission/src/domain/employment-scope-invalidation.test.ts","runtime/modules/permission/src/domain/employment-scope-invalidation.ts","runtime/modules/permission/src/domain/permission-decision-planner.test.ts","runtime/modules/permission/src/domain/permission-decision-planner.ts","runtime/modules/permission/src/domain/permission-preflight.test.ts","runtime/modules/permission/src/domain/permission-preflight.ts"],"removed":[],"modified":["runtime/modules/ai-gateway/src/domain/index.ts","runtime/modules/audit/src/domain/index.ts","runtime/modules/credential/src/domain/index.ts","runtime/modules/fact/src/domain/index.ts","runtime/modules/permission/src/domain/index.ts"]}],"total_commits":0,"head_commit":{"id":"95d9793f80ea584ebb999543fbe94e9597897fe6","message":"docs: record remote regression success and existing CI blockers\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/95d9793f80ea584ebb999543fbe94e9597897fe6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T00:07:52-07:00","added":[],"removed":[],"modified":["docs/候选校验与恢复脚本修复记录-2026-09-12.md"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2028,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T15:05:50+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
22
|
1789196881
|
1789196905
|
0
|
1789196881
|
1789196923
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23757
|
Implement H3 storyboard generation workflow
|
90
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
05bdd61017321f0434f28c8f0cf83946523d3cd1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8d38d4378b829970bdaf5ccb811e872883fb9d66","after":"05bdd61017321f0434f28c8f0cf83946523d3cd1","compare_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/compare/8d38d4378b829970bdaf5ccb811e872883fb9d66...05bdd61017321f0434f28c8f0cf83946523d3cd1","commits":[{"id":"05bdd61017321f0434f28c8f0cf83946523d3cd1","message":"Implement H3 storyboard generation workflow\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/05bdd61017321f0434f28c8f0cf83946523d3cd1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-08T21:56:45-07:00","added":["apps/web/src/features/h3/components/InferenceProfileSelector.tsx","apps/web/src/features/h3/lib/display.test.ts","apps/web/src/lib/atomic-file.ts","apps/web/src/lib/h3-model-manifest.ts","docs/workstation-deployment.md","packages/config/h3-model-manifest.json","packages/contracts/src/h3-storyboard-import.test.ts","packages/contracts/src/h3-storyboard-import.ts","scripts/check-workstation-deployment.mjs","scripts/manage-launchd.sh","scripts/prepare-production.sh","scripts/render-launchd-plist.mjs","scripts/runtime_backup.py","scripts/start-production.sh","scripts/verify-production-build.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/package.json","apps/web/src/features/h3/api/h3-api.ts","apps/web/src/features/h3/components/H3Workspace.tsx","apps/web/src/features/h3/components/StoryboardWorkspace.tsx","apps/web/src/features/h3/lib/display.ts","apps/web/src/lib/h3-jobs.ts","apps/web/src/lib/h3-model-manager.ts","apps/web/src/lib/h3-storyboards.ts","apps/web/tsconfig.json","docs/domain-glossary.md","docs/domain/h3-studio-blueprint.md","docs/domain/owner-matrix.md","docs/domain/storyboard-blueprint.md","docs/governance-experience.md","generate.py","package.json","packages/contracts/src/h3-storyboard.test.ts","packages/contracts/src/h3-storyboard.ts","packages/contracts/src/h3.test.ts","packages/contracts/src/h3.ts","packages/contracts/src/index.ts","packages/contracts/tsconfig.tsbuildinfo","requirements.txt","scripts/bootstrap.sh","scripts/check-ui-acceptance.mjs","scripts/prepare_model.py"]}],"total_commits":0,"head_commit":{"id":"05bdd61017321f0434f28c8f0cf83946523d3cd1","message":"Implement H3 storyboard generation workflow\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/05bdd61017321f0434f28c8f0cf83946523d3cd1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-08T21:56:45-07:00","added":["apps/web/src/features/h3/components/InferenceProfileSelector.tsx","apps/web/src/features/h3/lib/display.test.ts","apps/web/src/lib/atomic-file.ts","apps/web/src/lib/h3-model-manifest.ts","docs/workstation-deployment.md","packages/config/h3-model-manifest.json","packages/contracts/src/h3-storyboard-import.test.ts","packages/contracts/src/h3-storyboard-import.ts","scripts/check-workstation-deployment.mjs","scripts/manage-launchd.sh","scripts/prepare-production.sh","scripts/render-launchd-plist.mjs","scripts/runtime_backup.py","scripts/start-production.sh","scripts/verify-production-build.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/package.json","apps/web/src/features/h3/api/h3-api.ts","apps/web/src/features/h3/components/H3Workspace.tsx","apps/web/src/features/h3/components/StoryboardWorkspace.tsx","apps/web/src/features/h3/lib/display.ts","apps/web/src/lib/h3-jobs.ts","apps/web/src/lib/h3-model-manager.ts","apps/web/src/lib/h3-storyboards.ts","apps/web/tsconfig.json","docs/domain-glossary.md","docs/domain/h3-studio-blueprint.md","docs/domain/owner-matrix.md","docs/domain/storyboard-blueprint.md","docs/governance-experience.md","generate.py","package.json","packages/contracts/src/h3-storyboard.test.ts","packages/contracts/src/h3-storyboard.ts","packages/contracts/src/h3.test.ts","packages/contracts/src/h3.ts","packages/contracts/src/index.ts","packages/contracts/tsconfig.tsbuildinfo","requirements.txt","scripts/bootstrap.sh","scripts/check-ui-acceptance.mjs","scripts/prepare_model.py"]},"repository":{"id":90,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"minimax-h3-studio","full_name":"luoanwu/minimax-h3-studio","description":"MiniMax H3 本地视频生成 Studio:模型下载、管理、加载、采样与交付工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":996,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio/languages","html_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/minimax-h3-studio.git","clone_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-30T09:07:20+08:00","updated_at":"2026-08-30T11:30:27+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1788929811
|
1788930852
|
0
|
1788929809
|
1788930853
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23605
|
docs: 发布状态快照更新为已推送 main(03d95db)并删除两条旧分支
|
67
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
a32c582e58f0b53e409d09cbaa5e31c76ca26ab8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"03d95db096af66a1e7af7708a99156f194f2c702","after":"a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","compare_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/compare/03d95db096af66a1e7af7708a99156f194f2c702...a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","commits":[{"id":"a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","message":"docs: 发布状态快照更新为已推送 main(03d95db)并删除两条旧分支\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-02T16:39:43-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]}],"total_commits":0,"head_commit":{"id":"a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","message":"docs: 发布状态快照更新为已推送 main(03d95db)并删除两条旧分支\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-02T16:39:43-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},"repository":{"id":67,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"songformer-structure-lyrics","full_name":"luoanwu/songformer-structure-lyrics","description":"SongFormer 结构时间歌词行:结构→歌词行→字级时间流水线 + 治理底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2584,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics/languages","html_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/songformer-structure-lyrics.git","clone_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-28T14:19:19+08:00","updated_at":"2026-09-03T07:39:41+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1788392434
|
1788392525
|
0
|
1788392386
|
1788392526
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23548
|
fix(ci): self-provision isolated PG/Redis for host fix(ci): self-provision isolated PG/Redis for host-mode runner...
|
91
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
625450881bfb787bfa4ac092e11bfe534c340163
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","after":"625450881bfb787bfa4ac092e11bfe534c340163","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0...625450881bfb787bfa4ac092e11bfe534c340163","commits":[{"id":"625450881bfb787bfa4ac092e11bfe534c340163","message":"fix(ci): self-provision isolated PG/Redis for host-mode runner\n\nCI run #5 实锤:act_runner 以 host 模式执行,services 块被静默忽略,\n127.0.0.1:5432 命中 runner 宿主上另一个 postgres(P1000 凭据拒绝)——\n「端口连得上」推不出「基座正确」的远端形态。runtime job 改为步骤内\ndocker 自备基座:随机宿主端口 + run_id 后缀命名 + if:always 清理,\n缺 docker 时显式报错指路。Playwright 下载走 npmmirror(大陆网络直连\nCDN 假死为本机实测教训)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/625450881bfb787bfa4ac092e11bfe534c340163","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:56:43-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]}],"total_commits":0,"head_commit":{"id":"625450881bfb787bfa4ac092e11bfe534c340163","message":"fix(ci): self-provision isolated PG/Redis for host-mode runner\n\nCI run #5 实锤:act_runner 以 host 模式执行,services 块被静默忽略,\n127.0.0.1:5432 命中 runner 宿主上另一个 postgres(P1000 凭据拒绝)——\n「端口连得上」推不出「基座正确」的远端形态。runtime job 改为步骤内\ndocker 自备基座:随机宿主端口 + run_id 后缀命名 + if:always 清理,\n缺 docker 时显式报错指路。Playwright 下载走 npmmirror(大陆网络直连\nCDN 假死为本机实测教训)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/625450881bfb787bfa4ac092e11bfe534c340163","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:56:43-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]},"repository":{"id":91,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"qwen3-8-flash-next","full_name":"luoanwu/qwen3-8-flash-next","description":"Qwen3.8-Flash-Next 本地部署与多模态 Chat/RAG 工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2989,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next/languages","html_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/qwen3-8-flash-next.git","clone_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-30T09:20:06+08:00","updated_at":"2026-08-30T09:49:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1788055008
|
1788055099
|
0
|
1788055006
|
1788055099
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
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
|
|
23523
|
feat(governance): harden formal production trust b feat(governance): harden formal production trust boundaries...
|
57
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
8e23fd115535dda184b584cb62396fa8286ef383
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f094101357dc511e450e0e18fab5c91baaed9865","after":"8e23fd115535dda184b584cb62396fa8286ef383","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/f094101357dc511e450e0e18fab5c91baaed9865...8e23fd115535dda184b584cb62396fa8286ef383","commits":[{"id":"8e23fd115535dda184b584cb62396fa8286ef383","message":"feat(governance): harden formal production trust boundaries\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8e23fd115535dda184b584cb62396fa8286ef383","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:46:37-07:00","added":["apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","reports/production-security.latest.json","scripts/check-production-security.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-production/material-production.service.ts","apps/api-fastify/src/modules/material-production/object-storage.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/model-connector.client.test.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/deploy-vm.md","docs/domain/material-production-blueprint.md","package.json","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/production.ts","reports/adversarial-acceptance-audit.latest.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"58ffde2d1e2a662a18b4fadf901b0f6f5233f30a","message":"feat: 完善分镜导演终审与对抗治理\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/58ffde2d1e2a662a18b4fadf901b0f6f5233f30a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T11:55:23-07:00","added":["Codex 图像 2026年8月24日 02_24_17.jpg","apps/api-fastify/prisma/migrations/20260825103000_creative_support_skills/migration.sql","apps/api-fastify/prisma/migrations/20260825130000_director_spec_qc/migration.sql","apps/api-fastify/prisma/migrations/20260825134500_storyboard_delivery_variants/migration.sql","apps/api-nestjs/prisma/migrations/20260825103000_creative_support_skills/migration.sql","apps/api-nestjs/prisma/migrations/20260825130000_director_spec_qc/migration.sql","apps/api-nestjs/prisma/migrations/20260825134500_storyboard_delivery_variants/migration.sql","apps/web/src/components/material-factory/CreativeSupportSkills.tsx","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","packages/contracts/src/creative-support.test.ts","packages/contracts/src/creative-support.ts","packages/contracts/src/director-spec.test.ts","packages/contracts/src/director-spec.ts","reports/adversarial-acceptance-audit.latest.md","reports/storyboard-director-guard.latest.json","scripts/check-storyboard-director-guard.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/src/material-factory/shooting-script.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/package.json","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","package.json","packages/contracts/src/index.ts","packages/contracts/src/material.ts","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/script.ts","packages/contracts/src/storyboard.ts","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"8e23fd115535dda184b584cb62396fa8286ef383","message":"feat(governance): harden formal production trust boundaries\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8e23fd115535dda184b584cb62396fa8286ef383","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:46:37-07:00","added":["apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","reports/production-security.latest.json","scripts/check-production-security.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-production/material-production.service.ts","apps/api-fastify/src/modules/material-production/object-storage.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/model-connector.client.test.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/deploy-vm.md","docs/domain/material-production-blueprint.md","package.json","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/production.ts","reports/adversarial-acceptance-audit.latest.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":44687,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-08-26T00:40:46+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
1
|
4
|
1787705227
|
1787705287
|
0
|
1787705225
|
1787705287
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23505
|
docs(governance): 发布状态快照更新为远端三级门禁首次全绿(run 32344601 docs(governance): 发布状态快照更新为远端三级门禁首次全绿(run 32344601896)...
|
76
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
66900427c855e2ce43d634de9c6107dd6e8d1224
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6a3d263e9c83ec102cd45c7a7303926821bf02cf","after":"66900427c855e2ce43d634de9c6107dd6e8d1224","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/6a3d263e9c83ec102cd45c7a7303926821bf02cf...66900427c855e2ce43d634de9c6107dd6e8d1224","commits":[{"id":"66900427c855e2ce43d634de9c6107dd6e8d1224","message":"docs(governance): 发布状态快照更新为远端三级门禁首次全绿(run 32344601896)\n\n两远端 main=6a3d263,GitHub Actions 两 job 全绿;三层 CI 假红判责留档\n(F5 浅克隆 / 干净 checkout 缺 contracts dist / ANSI 彩色数 0)。\nci-gate 保持 OPEN:branch protection + 受控失败 PR 拦截证明未做。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/66900427c855e2ce43d634de9c6107dd6e8d1224","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T00:45:06-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"66900427c855e2ce43d634de9c6107dd6e8d1224","message":"docs(governance): 发布状态快照更新为远端三级门禁首次全绿(run 32344601896)\n\n两远端 main=6a3d263,GitHub Actions 两 job 全绿;三层 CI 假红判责留档\n(F5 浅克隆 / 干净 checkout 缺 contracts dist / ANSI 彩色数 0)。\nci-gate 保持 OPEN:branch protection + 受控失败 PR 拦截证明未做。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/66900427c855e2ce43d634de9c6107dd6e8d1224","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T00:45:06-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1129,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-08-20T15:33:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1787211910
|
1787211977
|
0
|
1787211909
|
1787211977
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23492
|
docs(governance): 收口发布声明——fe9a6ae 已推送,把免责句换成可支撑的合并 docs(governance): 收口发布声明——fe9a6ae 已推送,把免责句换成可支撑的合并声明...
|
74
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
470495fbe7a9692bbb9ef869546e0050c9c73b7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","after":"470495fbe7a9692bbb9ef869546e0050c9c73b7e","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/a369f4ee008c621f3ef5ada67880cb52a9ad7c9b...470495fbe7a9692bbb9ef869546e0050c9c73b7e","commits":[{"id":"470495fbe7a9692bbb9ef869546e0050c9c73b7e","message":"docs(governance): 收口发布声明——fe9a6ae 已推送,把免责句换成可支撑的合并声明\n\n上一提交写的免责句「不可外推为远端已发布该提交(fe9a6ae 尚未推送时本段成立)」\n在推送完成后其前提已不成立,留着就是一条自我失效的治理记录。\n\n按发布口径表改为可支撑的合并声明:\n「双远端已发布 fe9a6ae,且该提交在本地 clean 检出点通过三级门禁」。\n\n同时把剩余边界写死:仍不可外推为「远端 CI 已拦截 / 已部署 / 生产可用」——\n远端从未跑出过一次门禁运行,上述声明的证据来源始终是本机,\n与远端只共享同一个 commit SHA(G14 仍 OPEN)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/470495fbe7a9692bbb9ef869546e0050c9c73b7e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:42:32-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"470495fbe7a9692bbb9ef869546e0050c9c73b7e","message":"docs(governance): 收口发布声明——fe9a6ae 已推送,把免责句换成可支撑的合并声明\n\n上一提交写的免责句「不可外推为远端已发布该提交(fe9a6ae 尚未推送时本段成立)」\n在推送完成后其前提已不成立,留着就是一条自我失效的治理记录。\n\n按发布口径表改为可支撑的合并声明:\n「双远端已发布 fe9a6ae,且该提交在本地 clean 检出点通过三级门禁」。\n\n同时把剩余边界写死:仍不可外推为「远端 CI 已拦截 / 已部署 / 生产可用」——\n远端从未跑出过一次门禁运行,上述声明的证据来源始终是本机,\n与远端只共享同一个 commit SHA(G14 仍 OPEN)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/470495fbe7a9692bbb9ef869546e0050c9c73b7e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:42:32-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},"repository":{"id":74,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5634,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-15T06:22:30+08:00","updated_at":"2026-08-18T07:41:32+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1787010159
|
1787010237
|
0
|
1787010158
|
1787010237
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
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
|
|
23467
|
chore: refresh verified acceptance evidence
|
72
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
7638e946e8817308b94a23c028a18ac465c342c6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"283f1bfb6b2f049b0476abb92698db0539bc832f","after":"7638e946e8817308b94a23c028a18ac465c342c6","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/283f1bfb6b2f049b0476abb92698db0539bc832f...7638e946e8817308b94a23c028a18ac465c342c6","commits":[{"id":"7638e946e8817308b94a23c028a18ac465c342c6","message":"chore: refresh verified acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/7638e946e8817308b94a23c028a18ac465c342c6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T22:30:59-07:00","added":["reports/gate-selftest.latest.json"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"4d854d156ce4b4fb7791f427ced17f6fda6e4814","message":"fix: keep UI acceptance workspace clean\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/4d854d156ce4b4fb7791f427ced17f6fda6e4814","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T22:29:46-07:00","added":[],"removed":[],"modified":["apps/web/tsconfig.json","scripts/check-ui-acceptance.mjs"]},{"id":"2cbed6d88071e721e4c854e79485efe61b780aa1","message":"feat: ship customer solution design workflow\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/2cbed6d88071e721e4c854e79485efe61b780aa1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T22:27:22-07:00","added":["apps/api-fastify/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-fastify/src/modules/customer-solutions/customer-solutions.service.ts","apps/api-fastify/src/routes/customer-solutions.ts","apps/api-nestjs/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-nestjs/src/customer-solutions/customer-solutions.controller.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.module.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.service.ts","apps/web/src/app/solution/[accessToken]/page.tsx","apps/web/src/features/customer-solutions/api/customer-solutions-api.ts","apps/web/src/features/customer-solutions/components/CustomerSolutionWorkbench.tsx","apps/web/src/features/customer-solutions/components/PublicCustomerSolutionView.tsx","apps/web/src/features/customer-solutions/hooks/use-customer-solutions.ts","apps/web/src/features/customer-solutions/lib/floor-plan-analysis.ts","apps/web/src/store/solution-ui.ts","docs/domain/customer-solution-design-blueprint.md","packages/contracts/src/solution.ts","scripts/check-gate-selftest.mjs","scripts/lib/report-provenance.test.mjs","scripts/lib/vitest-report.mjs","scripts/lib/vitest-report.test.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/tsconfig.json","docs/audit/2026-07-30-deep-audit.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/realtime.ts","reports/baseline.json","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"7638e946e8817308b94a23c028a18ac465c342c6","message":"chore: refresh verified acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/7638e946e8817308b94a23c028a18ac465c342c6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T22:30:59-07:00","added":["reports/gate-selftest.latest.json"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":72,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":3689,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-07-31T12:56:22+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1785475888
|
1785475962
|
0
|
1785475887
|
1785475962
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23459
|
feat(governance): harden report provenance and UI feat(governance): harden report provenance and UI acceptance...
|
54
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
da8f52db37f5b42d035f92ad27a45067bc57dfa9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"02a656716b10d2a5a4937ba01086cbd0a9ff4b85","after":"da8f52db37f5b42d035f92ad27a45067bc57dfa9","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/02a656716b10d2a5a4937ba01086cbd0a9ff4b85...da8f52db37f5b42d035f92ad27a45067bc57dfa9","commits":[{"id":"da8f52db37f5b42d035f92ad27a45067bc57dfa9","message":"feat(governance): harden report provenance and UI acceptance\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/da8f52db37f5b42d035f92ad27a45067bc57dfa9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:40:06-07:00","added":["scripts/lib/report-provenance.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/governance-experience.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs"]},{"id":"4940be24ba6bfff2eefb2284f8ce66c9cbd1f326","message":"docs(governance): record remote branch consolidation\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4940be24ba6bfff2eefb2284f8ce66c9cbd1f326","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:35:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"da8f52db37f5b42d035f92ad27a45067bc57dfa9","message":"feat(governance): harden report provenance and UI acceptance\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/da8f52db37f5b42d035f92ad27a45067bc57dfa9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:40:06-07:00","added":["scripts/lib/report-provenance.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/governance-experience.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs"]},"repository":{"id":54,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":890,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-07-22T16:35:10+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1785422435
|
1785422492
|
0
|
1785422433
|
1785422492
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23445
|
fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉( fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉(C18)...
|
63
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
dbb8444dc97bba3e8ebc715efb82d803001981cd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","after":"dbb8444dc97bba3e8ebc715efb82d803001981cd","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf...dbb8444dc97bba3e8ebc715efb82d803001981cd","commits":[{"id":"dbb8444dc97bba3e8ebc715efb82d803001981cd","message":"fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉(C18)\n\n- 根因:Node 内置 fetch()(undici)自带 headersTimeout/bodyTimeout 默认\n 300000ms(5 分钟),优先级高于应用层 AbortController——route.ts 精心\n 设计的按音频时长预算(最长 55 分钟)从未真正掌管过请求,sidecar 真实\n 计算超 5 分钟即被静默掐断为 fetch failed,sidecar 进程本身无异常\n- 生产实测复现:用户单句重跑报错 fetch failed;日志显示\n POST /api/alignment/align 502 in 303388ms(卡在整 5 分钟),同一时间\n sidecar 侧无任何异常/Traceback\n- 修复:显式装 undici 依赖,建 Agent({ headersTimeout: 0, bodyTimeout: 0 })\n 作为 dispatcher 传入 fetch,超时决定权完全收回给自建 AbortController\n- 验证:本地短耗时对照实验复现同一故障(headersTimeout 2s 下 2.5s 抛出\n 一致的 fetch failed)并验证修复(headersTimeout:0 下等过 5s 拿到真实\n 响应)——非模拟,真实 HTTP 服务器 + 真实 undici Agent\n- 无自动化回归(apps/web 无 vitest 基座);已回灌 CLAUDE.md 缺口索引与\n 治理经验库,登记「未来任何长耗时出站 fetch 须显式归零 undici 超时」\n 的通用教训\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/dbb8444dc97bba3e8ebc715efb82d803001981cd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:53:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/package.json","apps/web/src/app/api/alignment/align/route.ts","docs/governance-experience.md","pnpm-lock.yaml","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"dbb8444dc97bba3e8ebc715efb82d803001981cd","message":"fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉(C18)\n\n- 根因:Node 内置 fetch()(undici)自带 headersTimeout/bodyTimeout 默认\n 300000ms(5 分钟),优先级高于应用层 AbortController——route.ts 精心\n 设计的按音频时长预算(最长 55 分钟)从未真正掌管过请求,sidecar 真实\n 计算超 5 分钟即被静默掐断为 fetch failed,sidecar 进程本身无异常\n- 生产实测复现:用户单句重跑报错 fetch failed;日志显示\n POST /api/alignment/align 502 in 303388ms(卡在整 5 分钟),同一时间\n sidecar 侧无任何异常/Traceback\n- 修复:显式装 undici 依赖,建 Agent({ headersTimeout: 0, bodyTimeout: 0 })\n 作为 dispatcher 传入 fetch,超时决定权完全收回给自建 AbortController\n- 验证:本地短耗时对照实验复现同一故障(headersTimeout 2s 下 2.5s 抛出\n 一致的 fetch failed)并验证修复(headersTimeout:0 下等过 5s 拿到真实\n 响应)——非模拟,真实 HTTP 服务器 + 真实 undici Agent\n- 无自动化回归(apps/web 无 vitest 基座);已回灌 CLAUDE.md 缺口索引与\n 治理经验库,登记「未来任何长耗时出站 fetch 须显式归零 undici 超时」\n 的通用教训\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/dbb8444dc97bba3e8ebc715efb82d803001981cd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:53:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/package.json","apps/web/src/app/api/alignment/align/route.ts","docs/governance-experience.md","pnpm-lock.yaml","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},"repository":{"id":63,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"forced-alignment","full_name":"luoanwu/forced-alignment","description":"纯人声与歌词精准强制对齐工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":29769,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/forced-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/forced-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/forced-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-22T08:56:49+08:00","updated_at":"2026-07-22T15:40:47+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1784706813
|
1784706904
|
0
|
1784706813
|
1784706905
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23441
|
fix(governance): normalize colored test summaries
|
64
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
91550451861f997024b06c845897ea59af85e238
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"49daee39ae62e162a700622733a58a3b0d5fb27c","after":"91550451861f997024b06c845897ea59af85e238","compare_url":"https://gitea.g-hi.com/luoanwu/voice-conversion/compare/49daee39ae62e162a700622733a58a3b0d5fb27c...91550451861f997024b06c845897ea59af85e238","commits":[{"id":"91550451861f997024b06c845897ea59af85e238","message":"fix(governance): normalize colored test summaries\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/91550451861f997024b06c845897ea59af85e238","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:25:23-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"91550451861f997024b06c845897ea59af85e238","message":"fix(governance): normalize colored test summaries\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/91550451861f997024b06c845897ea59af85e238","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:25:23-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]},"repository":{"id":64,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voice-conversion","full_name":"luoanwu/voice-conversion","description":"SoulX-Singer personal singing voice conversion platform","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":863,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion/languages","html_url":"https://gitea.g-hi.com/luoanwu/voice-conversion","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voice-conversion.git","clone_url":"https://gitea.g-hi.com/luoanwu/voice-conversion.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-22T14:37:12+08:00","updated_at":"2026-07-22T15:20:46+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784705138
|
1784705194
|
0
|
1784705137
|
1784705194
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23430
|
Strengthen voiceprint governance and runtime accep Strengthen voiceprint governance and runtime acceptance...
|
62
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
73bd623dfedff79a02fac961d1c16f106137e2df
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"99c0c69becb251d64b434b6ab315d0562888ad8d","after":"73bd623dfedff79a02fac961d1c16f106137e2df","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/99c0c69becb251d64b434b6ab315d0562888ad8d...73bd623dfedff79a02fac961d1c16f106137e2df","commits":[{"id":"73bd623dfedff79a02fac961d1c16f106137e2df","message":"Strengthen voiceprint governance and runtime acceptance\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/73bd623dfedff79a02fac961d1c16f106137e2df","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T10:13:40-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/IdentifyPanel.tsx","docs/domain/voiceprint-blueprint.md","docs/product-prd.md","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_age_gender_research.py","tests/test_age_gender_sidecar.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},{"id":"40a5c4ef3404ccd2f51b8244626d95d1b5939512","message":"fix: stabilize UI acceptance runner\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/40a5c4ef3404ccd2f51b8244626d95d1b5939512","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-18T23:52:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"73bd623dfedff79a02fac961d1c16f106137e2df","message":"Strengthen voiceprint governance and runtime acceptance\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/73bd623dfedff79a02fac961d1c16f106137e2df","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T10:13:40-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/IdentifyPanel.tsx","docs/domain/voiceprint-blueprint.md","docs/product-prd.md","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_age_gender_research.py","tests/test_age_gender_sidecar.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1293,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-15T08:42:42+08:00","updated_at":"2026-07-16T12:03:58+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1784654024
|
1784655050
|
0
|
1784654024
|
1784655050
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23416
|
C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)
|
60
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
262802ed1be2f708784260d2fd49e110a9c365f9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2358c119b985d2797496bd76d8683556005f5998","after":"262802ed1be2f708784260d2fd49e110a9c365f9","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/2358c119b985d2797496bd76d8683556005f5998...262802ed1be2f708784260d2fd49e110a9c365f9","commits":[{"id":"262802ed1be2f708784260d2fd49e110a9c365f9","message":"C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)\n\nCI 判责输出(C64c 新增)直接暴露根因:turbo/vitest 在 CI 上强制彩色,\n「Tests ⎋[1m⎋[32m95 passed」的转义序列夹在关键词与数字之间使\n/Tests\\s+(\\d+)\\s+passed/ 失配、汇总恒 0;本机非 TTY 无色码故从未复现。\n解析前剥 \\x1b[..m 序列,彩色/无色输入均验证正确;本机 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/262802ed1be2f708784260d2fd49e110a9c365f9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:39:54-07:00","added":[],"removed":[],"modified":["reports/runtime-acceptance.latest.json","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"262802ed1be2f708784260d2fd49e110a9c365f9","message":"C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)\n\nCI 判责输出(C64c 新增)直接暴露根因:turbo/vitest 在 CI 上强制彩色,\n「Tests ⎋[1m⎋[32m95 passed」的转义序列夹在关键词与数字之间使\n/Tests\\s+(\\d+)\\s+passed/ 失配、汇总恒 0;本机非 TTY 无色码故从未复现。\n解析前剥 \\x1b[..m 序列,彩色/无色输入均验证正确;本机 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/262802ed1be2f708784260d2fd49e110a9c365f9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:39:54-07:00","added":[],"removed":[],"modified":["reports/runtime-acceptance.latest.json","scripts/check-runtime-acceptance.mjs"]},"repository":{"id":60,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3851,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T14:32:58+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1784011490
|
1784011581
|
0
|
1784011200
|
1784011582
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23407
|
Add STARS line context planning
|
50
|
5
|
lyra-production-governance.yml
|
6
|
5
|
0
|
refs/pull/1/head
|
c51dc5edc2fdf269634a6cbbc50e18200230e42d
|
0
|
0
|
0
|
pull_request_sync
|
{"action":"synchronized","numb {"action":"synchronized","number":1,"pull_request":{"id":67,"url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1","number":1,"user":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"title":"fix(web): update Lyra product labels","body":"\u003c!--\r\n PR 治理模板。提交前请逐项确认,确保符合 docs/standards 下的工程规范。\r\n CI 会执行:pnpm check(命名 + 单源漂移 + 治理棘轮 + lint + typecheck);\r\n 有测试 DB 的流水线另执行 DATABASE_URL=... pnpm check:runtime。\r\n--\u003e\r\n\r\n## 变更内容\r\n\u003c!-- 简述这次改了什么、为什么改(聚焦 why) --\u003e\r\n-\r\n\r\n## 涉及业务概念\r\n\u003c!-- 列出涉及的业务词典英文名,例如 store / order / verification。参见 docs/domain-glossary.md --\u003e\r\n-\r\n\r\n## 检查清单\r\n\r\n### 命名一致性\r\n- [ ] 业务概念使用了词典中的标准英文名(未出现 shop/branch/seller/voucher/writeOff 等禁用词)\r\n- [ ] 数据库 snake_case + 复数表名;API/JSON 字段 camelCase;类型 PascalCase;常量 SCREAMING_SNAKE_CASE\r\n- [ ] `pnpm check:naming` 通过\r\n- [ ] `pnpm check:schema` 通过,未新增第二份状态/契约真源\r\n\r\n### API / 契约\r\n- [ ] 不涉及 API 变更\r\n- [ ] 新增/修改了 API,路由符合 `/api/v1/{resources}` 规范\r\n- [ ] 已更新 `packages/contracts` 中的 Zod schema / DTO / 类型(前后端共用同一份)\r\n- [ ] 无破坏前端兼容的字段删除/重命名(如有,已在描述中说明迁移方案)\r\n\r\n### 数据库\r\n- [ ] 不涉及数据库变更\r\n- [ ] 新增/修改了表或字段,已通过 migration review(表名复数、字段 snake_case、外键 xxx_id、时间 _at、状态 status)\r\n- [ ] 高增长表已考虑分区;涉及多租户的表带 tenant_id\r\n- [ ] 写链显式带 tenant_id;跨租户读写按 404/隔离口径处理\r\n\r\n### 数据库迁移(迁移即代码:版本/顺序/内容/环境/发布/回滚一致)\r\n- [ ] 改 schema.prisma 的同时**已生成并提交 migration**(`pnpm db:migrate:dev --name \u003cchange\u003e`),未只改 schema 不落迁移\r\n- [ ] **未修改已发布过的历史 migration 文件**(内容一致:历史不可变,新变更走新迁移)\r\n- [ ] `pnpm check:migrations` 通过(迁移历史在位 / 无未豁免高危 DDL / schema 表、enum、`@map` 列均已落迁移)\r\n- [ ] 破坏性变更(删表/删列/改名/改类型/加 NOT NULL/加唯一约束)走 **expand→migrate→contract** 三阶段,不一次切\r\n- [ ] 大表加索引用 `CREATE INDEX CONCURRENTLY`;大批量回填走 BullMQ 分批任务,不塞进 migration\r\n- [ ] 高危但确需的 DDL 已加 `-- migration-allow:\u003c原因\u003e` 留痕,并在下方回滚方案说明\r\n- [ ] 非开发环境只用 `migrate deploy`(禁止 `db push` / 线上手动 ALTER);发布前 `pnpm db:migrate:status` 无 drift\r\n\r\n### 实时 / 队列\r\n- [ ] 不涉及\r\n- [ ] 关键业务事件进入 BullMQ 或持久化事件表(未仅依赖 Redis Pub/Sub)\r\n- [ ] 写库事件与真实写操作在同一 tx 写入 outbox,未在 commit 后旁路 publish\r\n- [ ] 实时通道选型符合规范(订单/看板/通知用 SSE;设备在线/包间控制/IM 用 WebSocket)\r\n\r\n### 质量与发布\r\n- [ ] 通过 `pnpm lint` 与 `pnpm typecheck`\r\n- [ ] 通过 `pnpm check:governance`,`reports/*.latest.json` 已刷新且无棘轮回退\r\n- [ ] 涉及写链 / DB / 租户 / 状态机时,通过 `DATABASE_URL=... pnpm check:runtime`,`reports/runtime-acceptance.latest.json` 已刷新\r\n- [ ] 已补充/更新必要的测试\r\n- [ ] 不需要回滚方案\r\n- [ ] 需要回滚方案,已在下方说明\r\n\r\n## 回滚方案 / 其他说明\r\n-\r\n","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":5930,"deletions":464,"changed_files":101,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1.patch","mergeable":false,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","repo_id":50,"repo":{"id":50,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257534,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-song-library-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-06T15:41:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"codex/p0-edge-governance","ref":"codex/p0-edge-governance","sha":"c51dc5edc2fdf269634a6cbbc50e18200230e42d","repo_id":50,"repo":{"id":50,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257534,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-song-library-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-06T15:41:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","due_date":null,"created_at":"2026-07-06T16:41:19+08:00","updated_at":"2026-07-07T21:38:21+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":50,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257534,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-song-library-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-06T15:41:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"commit_id":"","review":null}...
|
pull_request
|
2
|
4
|
1783431544
|
1783431580
|
0
|
1783431501
|
1783431580
|
|
|
0
|
Edit
Delete
|
|
26667
|
feat(eios): Prisma 中间件可改走 $extends 查询扩展,清掉 Prisma feat(eios): Prisma 中间件可改走 $extends 查询扩展,清掉 Prisma 6 阻塞...
|
160
|
5
|
ci.yml
|
5
|
5
|
0
|
refs/heads/main
|
b581d18e4449cb04a547e46807641a4c991417e7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a7963ef1fa5c09c7fce284dd8b16c9a452b39949","after":"b581d18e4449cb04a547e46807641a4c991417e7","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/a7963ef1fa5c09c7fce284dd8b16c9a452b39949...b581d18e4449cb04a547e46807641a4c991417e7","commits":[{"id":"b581d18e4449cb04a547e46807641a4c991417e7","message":"feat(eios): Prisma 中间件可改走 $extends 查询扩展,清掉 Prisma 6 阻塞\n\nP1-02 依赖代际探针留下的 5 个 Prisma 6 类型错误(3 处 $use、加密中间件 2 处类型)\n在主线清零:\n\n- config/prisma-middleware-extension.ts 把 (params, next) 中间件原样包成顶层\n $allOperations 查询扩展,慢查询 / 租户隔离 / 加密三个中间件本身不改;\n- config/database.ts 默认仍 $use;EIOS_PRISMA_QUERY_EXTENSIONS=true 或运行时没有\n $use(Prisma 6)时按原注册顺序逐个 $extends;开发态缓存改为基座,避免扩展叠层;\n- encryption.middleware.ts 对同一 args 对象就地写,兼容 Prisma 6 类型,行为不变。\n\nPrisma 5.22 实测:先 $extends 的在外层,与 $use 注册顺序一致;顶层钩子也拦 raw 查询。\n测试 7 项用真实 PrismaClient 指向不可达库,验证嵌套顺序、args 改写传递与租户隔离\n在发往引擎前拒绝。读数:Prisma 5 type-check 0 错误、单测 8968/8984(17 项基线);\n探针 Prisma 6.19.3 type-check 0 错误(原 5),适配与加密单测 46/46。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b581d18e4449cb04a547e46807641a4c991417e7","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-29T23:07:20-07:00","added":["backend/src/config/__tests__/prisma-middleware-extension.test.ts","backend/src/config/prisma-middleware-extension.ts"],"removed":[],"modified":[".env.eios.example","backend/src/config/database.ts","backend/src/shared/middleware/encryption.middleware.ts","docs/eios-transformation/README.md","docs/eios-transformation/lanes/p1.md","docs/eios-transformation/改造计划-2026-10-28.md"]}],"total_commits":0,"head_commit":{"id":"b581d18e4449cb04a547e46807641a4c991417e7","message":"feat(eios): Prisma 中间件可改走 $extends 查询扩展,清掉 Prisma 6 阻塞\n\nP1-02 依赖代际探针留下的 5 个 Prisma 6 类型错误(3 处 $use、加密中间件 2 处类型)\n在主线清零:\n\n- config/prisma-middleware-extension.ts 把 (params, next) 中间件原样包成顶层\n $allOperations 查询扩展,慢查询 / 租户隔离 / 加密三个中间件本身不改;\n- config/database.ts 默认仍 $use;EIOS_PRISMA_QUERY_EXTENSIONS=true 或运行时没有\n $use(Prisma 6)时按原注册顺序逐个 $extends;开发态缓存改为基座,避免扩展叠层;\n- encryption.middleware.ts 对同一 args 对象就地写,兼容 Prisma 6 类型,行为不变。\n\nPrisma 5.22 实测:先 $extends 的在外层,与 $use 注册顺序一致;顶层钩子也拦 raw 查询。\n测试 7 项用真实 PrismaClient 指向不可达库,验证嵌套顺序、args 改写传递与租户隔离\n在发往引擎前拒绝。读数:Prisma 5 type-check 0 错误、单测 8968/8984(17 项基线);\n探针 Prisma 6.19.3 type-check 0 错误(原 5),适配与加密单测 46/46。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b581d18e4449cb04a547e46807641a4c991417e7","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-29T23:07:20-07:00","added":["backend/src/config/__tests__/prisma-middleware-extension.test.ts","backend/src/config/prisma-middleware-extension.ts"],"removed":[],"modified":[".env.eios.example","backend/src/config/database.ts","backend/src/shared/middleware/encryption.middleware.ts","docs/eios-transformation/README.md","docs/eios-transformation/lanes/p1.md","docs/eios-transformation/改造计划-2026-10-28.md"]},"repository":{"id":160,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub-eios","full_name":"luoanwu/juhi-omni-knowledge-hub-eios","description":"巨嗨全域智库 EIOS 化独立改造仓(由本地改造副本推送;原 luoanwu/juhi-omni-knowledge-hub 不动)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2102237,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub-eios.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"eios/w0","archived":false,"created_at":"2026-10-30T09:22:23+08:00","updated_at":"2026-10-30T13:10:47+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
20
|
1793340847
|
1793343457
|
0
|
1793340464
|
1793343457
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
26166
|
docs(governance): bind five-tier kit acceptance an docs(governance): bind five-tier kit acceptance and cache evidence...
|
84
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
db93444d86694304ad66fc4d51864c6d89860f85
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8","after":"db93444d86694304ad66fc4d51864c6d89860f85","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/cbf31b3bc76e8f62c1587f5ffb1ed4703f4760b8...db93444d86694304ad66fc4d51864c6d89860f85","commits":[{"id":"db93444d86694304ad66fc4d51864c6d89860f85","message":"docs(governance): bind five-tier kit acceptance and cache evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/db93444d86694304ad66fc4d51864c6d89860f85","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:50:18-07:00","added":["reports/governance-kit-migration.latest.json","reports/governance-kit.latest.json"],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"7dca797205498ab32b6e83194fabe504b541bea6","message":"fix(build): share installed pnpm content store with production deploy steps\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/7dca797205498ab32b6e83194fabe504b541bea6","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:42:25-07:00","added":[],"removed":[],"modified":["Dockerfile","docs/governance-kit-027-migration.md","docs/production-operations.md"]},{"id":"936ef652cb5709c6e94875f715b664dd102282bb","message":"docs(governance): reconcile actual acceptance, build config and DR preparation\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/936ef652cb5709c6e94875f715b664dd102282bb","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:31:09-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-kit-027-migration.md","docs/production-operations.md"]},{"id":"9c0c03e889a5e76e72c9a298a5cb6f153f8a213c","message":"docs: align container secret negative-probe count\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/9c0c03e889a5e76e72c9a298a5cb6f153f8a213c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:09:11-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"048d19d40a2291350efeb798f0d040e4cd02794b","message":"fix(governance): wire private kit into container and CI installs\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/048d19d40a2291350efeb798f0d040e4cd02794b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:08:15-07:00","added":[],"removed":[],"modified":[".dockerignore",".github/workflows/governance.yml","Dockerfile","compose.production.yml","docs/governance-kit-027-migration.md","docs/production-operations.md","scripts/check-container-acceptance.mjs","scripts/check-production-operations.mjs"]}],"total_commits":0,"head_commit":{"id":"db93444d86694304ad66fc4d51864c6d89860f85","message":"docs(governance): bind five-tier kit acceptance and cache evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/db93444d86694304ad66fc4d51864c6d89860f85","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-20T00:50:18-07:00","added":["reports/governance-kit-migration.latest.json","reports/governance-kit.latest.json"],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":84,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-knowledge-cloud","full_name":"luoanwu/juhai-knowledge-cloud","description":"巨嗨知识云:受治理的知识唯一真源与混合证据检索","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1536,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:45:53+08:00","updated_at":"2026-09-15T15:55:23+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1792482649
|
1792482662
|
0
|
1792482649
|
1792482664
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26085
|
feat(device): add isolated S2 connection and durab feat(device): add isolated S2 connection and durable command receipt loop...
|
135
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
4b39ba2e2da24a46314e9d171f4c3636d023290d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d820cc6f462a719ddbf43440d5a9b835e6fa09de","after":"4b39ba2e2da24a46314e9d171f4c3636d023290d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/compare/d820cc6f462a719ddbf43440d5a9b835e6fa09de...4b39ba2e2da24a46314e9d171f4c3636d023290d","commits":[{"id":"4b39ba2e2da24a46314e9d171f4c3636d023290d","message":"feat(device): add isolated S2 connection and durable command receipt loop\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/4b39ba2e2da24a46314e9d171f4c3636d023290d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T04:01:58-07:00","added":["docs/domain/s2-device-loop-blueprint.md","docs/evidence/2026-10-18-s2/rules.tap","docs/evidence/2026-10-18-s2/runtime-summary.json","docs/evidence/2026-10-18-s2/source-bindings.json","docs/s2-device-loop.md","ops/device-loop-candidate/contract.mjs","ops/device-loop-candidate/fixtures.mjs","ops/device-loop-candidate/http.mjs","ops/device-loop-candidate/manifest.json","ops/device-loop-candidate/rules.test.mjs","ops/device-loop-candidate/run-isolated.mjs","ops/device-loop-candidate/service.mjs","ops/device-loop-candidate/store.mjs","ops/device-loop-candidate/terminal.mjs","ops/device-loop-candidate/worker.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/domain/owner-matrix.md","package.json","reports/agent-adapters.latest.json","reports/ci-evidence.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/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":"4b39ba2e2da24a46314e9d171f4c3636d023290d","message":"feat(device): add isolated S2 connection and durable command receipt loop\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/4b39ba2e2da24a46314e9d171f4c3636d023290d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-18T04:01:58-07:00","added":["docs/domain/s2-device-loop-blueprint.md","docs/evidence/2026-10-18-s2/rules.tap","docs/evidence/2026-10-18-s2/runtime-summary.json","docs/evidence/2026-10-18-s2/source-bindings.json","docs/s2-device-loop.md","ops/device-loop-candidate/contract.mjs","ops/device-loop-candidate/fixtures.mjs","ops/device-loop-candidate/http.mjs","ops/device-loop-candidate/manifest.json","ops/device-loop-candidate/rules.test.mjs","ops/device-loop-candidate/run-isolated.mjs","ops/device-loop-candidate/service.mjs","ops/device-loop-candidate/store.mjs","ops/device-loop-candidate/terminal.mjs","ops/device-loop-candidate/worker.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/domain/owner-matrix.md","package.json","reports/agent-adapters.latest.json","reports/ci-evidence.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":135,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-thing-cloud","full_name":"luoanwu/juhai-thing-cloud","description":"物云:02「物」域应用,自设备云 juhai-device-cloud 4652ce0 分叉","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1998,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-thing-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-12T21:14:44+08:00","updated_at":"2026-10-18T07:24: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
|
10
|
1792321333
|
1792321754
|
0
|
1792321332
|
1792321881
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
25695
|
V2 Download Artifact (#27)
|
139
|
5
|
test.yml
|
5
|
5
|
0
|
refs/tags/v2.0
|
1de1dea89c32dcb1f37183c96fe85cfe067b682a
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.0","befor {"ref":"refs/tags/v2.0","before":"0000000000000000000000000000000000000000","after":"1de1dea89c32dcb1f37183c96fe85cfe067b682a","compare_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/compare/0000000000000000000000000000000000000000...1de1dea89c32dcb1f37183c96fe85cfe067b682a","commits":[],"total_commits":0,"head_commit":{"id":"1de1dea89c32dcb1f37183c96fe85cfe067b682a","message":"V2 Download Artifact (#27)\n\n* V2 Preview (#19)\r\n\r\n* V2 Setup\r\n\r\n* Add end-to-end tests\r\n\r\n* Update tests\r\n\r\n* Update tests\r\n\r\n* Update tests\r\n\r\n* Update tests again\r\n\r\n* Misc Updates\r\n\r\n* Improve logs\r\n\r\n* Update release\r\n\r\n* Update README.md\r\n\r\n* @actions/artifact v0.2.0\r\n\r\n* Update to the latest version of the @actions/artifact package\r\n\r\n* Update @actions/artifact to 0.3.1\r\n\r\n* Misc Updates\r\n\r\n* Add .gitattributes\r\n\r\n* Update Readme\r\n\r\n* Update test YAML","url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/commit/1de1dea89c32dcb1f37183c96fe85cfe067b682a","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-04-28T15:45:21+02:00","added":[".eslintignore",".eslintrc.json",".gitattributes",".github/workflows/test.yml",".gitignore",".prettierignore",".prettierrc.json","dist/index.js","package-lock.json","package.json","src/constants.ts","src/download-artifact.ts","tsconfig.json"],"removed":[],"modified":["README.md","action.yml"]},"repository":{"id":139,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-download-artifact","full_name":"luoanwu/actions-download-artifact","description":"Mirror of github.com/actions/download-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-download-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:37:23+08:00","updated_at":"2026-10-13T06:38:59+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1791854083
|
1791950481
|
0
|
1791844739
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25683
|
Correctly check symlinks (#103)
|
138
|
5
|
codeql-analysis.yml
|
5
|
5
|
0
|
refs/tags/v2.1.1
|
5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.1.1","bef {"ref":"refs/tags/v2.1.1","before":"0000000000000000000000000000000000000000","after":"5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5","compare_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/compare/0000000000000000000000000000000000000000...5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5","commits":[],"total_commits":0,"head_commit":{"id":"5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5","message":"Correctly check symlinks (#103)\n\n","url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/commit/5f948bc1f0a251f88bb4c9b1c3dfa6cbd1327dc5","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-27T15:41:16+02:00","added":[],"removed":[],"modified":["dist/index.js","src/search.ts"]},"repository":{"id":138,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-upload-artifact","full_name":"luoanwu/actions-upload-artifact","description":"Mirror of github.com/actions/upload-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-upload-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:37:06+08:00","updated_at":"2026-10-13T06:38:47+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1791849391
|
1791850423
|
0
|
1791844728
|
1791850423
|
|
|
0
|
Edit
Delete
|
|
25666
|
Bump eslint from 10.5.0 to 10.11.0 and package.jso Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)...
|
137
|
5
|
licensed.yml
|
5
|
5
|
0
|
refs/heads/main
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"949feb2413d6458794dcd2491c4babbbce0c15c1","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/d1fcc24e82935aad3ffaca8fa0af970179d4da3c...949feb2413d6458794dcd2491c4babbbce0c15c1","commits":[{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","message":"chore: update dependencies and add license files (#1642)\n\n* chore: update dependencies and add license files\n\n- Bump @actions/cache from 6.2.0 to 6.3.0 in package.json and package-lock.json\n- Update @actions/glob from 0.6.1 to 0.7.0 in package-lock.json\n- Update brace-expansion from 5.0.9 to 5.0.12 in package.json and package-lock.json\n- Bump undici from 6.28.0 to 6.29.0 in package-lock.json\n- Add license files for @actions/glob and minimatch dependencies\n\n* chore: update minimatch dependency file\n\n---------\n\nCo-authored-by: HarithaVattikuti \u003c73516759+HarithaVattikuti@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","author":{"name":"Haritha","email":"73516759+v-HarithaVattikuti@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:39:15-05:00","added":[".licenses/npm/@actions/glob.dep.yml",".licenses/npm/minimatch.dep.yml"],"removed":[".licenses/npm/@actions/glob-0.6.1.dep.yml",".licenses/npm/@actions/glob-0.7.0.dep.yml",".licenses/npm/minimatch-10.2.6.dep.yml",".licenses/npm/minimatch-3.1.5.dep.yml"],"modified":[".licenses/npm/@actions/cache.dep.yml",".licenses/npm/brace-expansion.dep.yml",".licenses/npm/undici.dep.yml","dist/cache-save/index.js","dist/setup/index.js","package-lock.json","package.json"]},{"id":"54337e0d02de9202d0948aaff36ad556375497b9","message":"Bump eslint-plugin-n from 18.1.0 to 18.3.0 (#1638)\n\nBumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 18.1.0 to 18.3.0.\n- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)\n- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v18.1.0...v18.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint-plugin-n\n dependency-version: 18.3.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/54337e0d02de9202d0948aaff36ad556375497b9","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:45:08-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","message":"Bump jest-each from 30.4.1 to 30.5.2 (#1636)\n\nBumps [jest-each](https://github.com/jestjs/jest/tree/HEAD/packages/jest-each) from 30.4.1 to 30.5.2.\n- [Release notes](https://github.com/jestjs/jest/releases)\n- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest-each)\n\n---\nupdated-dependencies:\n- dependency-name: jest-each\n dependency-version: 30.5.2\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:44:20-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7f84f1d52d0c56afb45c62fee31a93b843cea4d6","message":"Bump pnpm/action-setup from 6.0.10 to 6.1.0 (#1631)\n\nBumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 6.0.10 to 6.1.0.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/0977fd99725f1db4007ccb2928dbb4e90d06cc86...ea17c68df8912ef543352723c149a84f56e3d413)\n\n---\nupdated-dependencies:\n- dependency-name: pnpm/action-setup\n dependency-version: 6.1.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7f84f1d52d0c56afb45c62fee31a93b843cea4d6","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-25T16:05:28-05:00","added":[],"removed":[],"modified":[".github/workflows/e2e-cache.yml"]}],"total_commits":0,"head_commit":{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1791846456
|
1791846456
|
0
|
1791844717
|
1791846456
|
|
|
0
|
Edit
Delete
|
|
25633
|
feat(console): 合并控制台逐页布局与样式改造
|
125
|
16
|
verify.yml
|
5
|
16
|
0
|
refs/heads/main
|
faac5481c1cca66e4708222686b6588a43938150
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4bda2cc02706e1c64d5cd23c233673a0b32d0a72","after":"faac5481c1cca66e4708222686b6588a43938150","compare_url":"https://gitea.g-hi.com/pengzhiyu/IAM/compare/4bda2cc02706e1c64d5cd23c233673a0b32d0a72...faac5481c1cca66e4708222686b6588a43938150","commits":[{"id":"faac5481c1cca66e4708222686b6588a43938150","message":"feat(console): 合并控制台逐页布局与样式改造\n\n控制台各页面原先列表用「查看详情」按钮、详情是整张表单、弹窗操作区与空状态各不相同,常用信息和危险操作混在一起。合并 feat/console-layout 分支,按统一的列表、抽屉与弹窗约定逐页重排企业内、平台侧与应用内的管理页面。\n\n实现内容:\n- 列表统一为整行可点(OpenableRow 或同交互的专用行),名称为链接或按钮、末列右箭头,需要处理的状态用 cell-note 提示;空状态改为带图标、说明与操作的公共 EmptyList,无数据时不显示分页\n- 详情抽屉按「基本信息 / 业务分区 / 危险区」分区,修改就地展开且同一时间只进行一项;危险操作默认收起,展开后用单选卡片或确认勾选\n- 企业、应用接入改为带分区标签的详情页;新增只读组织架构图;成员、部门、用户组、所有账号、企业与平台管理员、应用开通、操作记录、权限清单、角色、角色分配、程序接入(密钥管理内嵌抽屉)与程序身份完成改造\n- 弹窗底部统一使用 FormActions「取消 + 主操作」,多步弹窗提供「重新选择」;权限统一以名称为主、代码为辅显示,勾选清单统一为带边框的列表\n- 同步更新各页面单元测试与相关验收脚本中的文案和定位\n\n验证:\n- 分支上每次提交前运行 npm run check:format:check、lint、typecheck、test、build 通过,最后一次 Vitest 26 个文件 223 项全部通过\n- 各页面在浏览器 1280 宽、375 窄屏及亮/暗色下核对;程序接入、程序身份等演示环境缺数据的页面以页面内临时改写接口响应检查,未提交写操作\n- 验收脚本仅执行 node --check,未实际运行\n- 合并无冲突,main 上未单独重新运行检查;平台权限查询接入、个人中心尚未改造\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/faac5481c1cca66e4708222686b6588a43938150","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:07:51-07:00","added":["iam-admin-web/src/pages/management/OrganizationChartPage.tsx","iam-admin-web/src/pages/management/PlatformTenantPage.tsx","iam-admin-web/src/test/organizations.test.tsx"],"removed":[],"modified":["iam-admin-web/scripts/acceptance-group-lifecycle.mjs","iam-admin-web/scripts/acceptance-p10-t01.mjs","iam-admin-web/scripts/acceptance-p10-t02.mjs","iam-admin-web/scripts/acceptance-p10-t03.mjs","iam-admin-web/scripts/acceptance-p10-t04.mjs","iam-admin-web/scripts/acceptance-t02.mjs","iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/scripts/acceptance-t04.mjs","iam-admin-web/scripts/acceptance-t06.mjs","iam-admin-web/src/App.tsx","iam-admin-web/src/components/Management.tsx","iam-admin-web/src/lib/t04-api.ts","iam-admin-web/src/pages/management/ApplicationAdmissionPage.tsx","iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/ApplicationLifecycle.tsx","iam-admin-web/src/pages/management/ApplicationShared.tsx","iam-admin-web/src/pages/management/ApplicationsPage.tsx","iam-admin-web/src/pages/management/AuditPage.tsx","iam-admin-web/src/pages/management/AuthorizationShared.tsx","iam-admin-web/src/pages/management/BindingScopes.tsx","iam-admin-web/src/pages/management/BindingsPage.tsx","iam-admin-web/src/pages/management/GroupsPage.tsx","iam-admin-web/src/pages/management/MachineClientsPage.tsx","iam-admin-web/src/pages/management/MachineContract.tsx","iam-admin-web/src/pages/management/MachineCredentials.tsx","iam-admin-web/src/pages/management/MembersPage.tsx","iam-admin-web/src/pages/management/OrganizationsPage.tsx","iam-admin-web/src/pages/management/PlatformPages.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/pages/management/ServicePrincipalsPage.tsx","iam-admin-web/src/styles/applications.css","iam-admin-web/src/styles/audit.css","iam-admin-web/src/styles/authorization.css","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/application-lifecycle.test.tsx","iam-admin-web/src/test/application-management.test.tsx","iam-admin-web/src/test/audit.test.tsx","iam-admin-web/src/test/authorization-management.test.tsx","iam-admin-web/src/test/group-editor.test.tsx","iam-admin-web/src/test/group-lifecycle.test.tsx","iam-admin-web/src/test/machine-clients.test.tsx","iam-admin-web/src/test/machine-credentials.test.tsx","iam-admin-web/src/test/management-integration.test.tsx","iam-admin-web/src/test/service-principals.test.tsx"]},{"id":"3cf111b21a47760e5c71fc6b2fba96d882dbd3f1","message":"feat(console): 把程序身份详情改为分区抽屉并列出使用它的程序客户端\n\n程序身份详情是一张整体表单,改名、更换负责人和停用都要勾选确认并一起提交;负责人失效时改名会直接被后端拒绝,界面却没有提示;列表每行放「查看详情」按钮,页面顶部还有单独的说明框。按已定的列表与抽屉约定重排。\n\n实现内容:\n- 页面说明并入卡片描述;列表改为整行可点,负责人失效时在负责人下用 cell-note 提示;空列表使用「还没有程序身份」定制空状态\n- 详情抽屉分「基本信息 / 负责人 / 程序客户端 / 停用或恢复」:改名与更换负责人就地展开,不需要影响确认;停用或恢复在危险区展开并须确认;同一时间只进行一项修改,每项修改都带上其余字段的当前值提交到原有整体保存接口\n- 正常状态下负责人失效时禁用「修改名称」并提示先更换负责人,状态说明改为程序暂时不能获取令牌;已停用且负责人失效时恢复按钮不可用\n- 新增「程序客户端」分区:按身份代码搜索程序客户端后再按身份标识过滤(最多 100 个),链接到程序接入详情;没有客户端时给出前往程序接入的链接\n- 新建改为独立弹窗:名称、代码与平铺的负责人选择,底部使用 FormActions;负责人选择改为「选择 成员代码」按钮\n- 保存后焦点留在抽屉内;重写程序身份单元测试(更换负责人、停用确认、未知结果重试、冲突重读),同步 acceptance-p10-t01 中的详情等待、新建、状态变更、负责人失效、冲突重读与深链接步骤\n\n验证:\n- npm run check(format:check、lint、typecheck、test、build):通过,Vitest 26 个文件 223 项全部通过\n- node --check 检查 acceptance-p10-t01:通过\n- 演示环境没有程序身份,浏览器中以页面内临时改写接口响应的方式检查列表、详情四区、更换负责人、停用确认、负责人失效与新建弹窗(1280 宽、375 窄屏及亮/暗色),未提交写操作\n- 验收脚本 acceptance-p10-t01:未运行,需要独立隔离环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/3cf111b21a47760e5c71fc6b2fba96d882dbd3f1","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:05:50-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-p10-t01.mjs","iam-admin-web/src/pages/management/ServicePrincipalsPage.tsx","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/service-principals.test.tsx"]},{"id":"ba844f0abb4b7b64a50d2a5b617e87e33aac5a14","message":"feat(console): 把程序接入详情改为分区抽屉并内嵌密钥管理\n\n程序接入页顶部有一大段说明,列表每行放「查看详情」按钮;详情是一张整体表单,管理密钥要切换到另一个子视图,新建时在弹窗里同时套着两张选择卡片。按已定的列表与抽屉约定重排。\n\n实现内容:\n- 页头补「应用」徽标,原顶部说明并入页头与卡片描述,授权方式名称移到详情技术细节\n- 列表改为整行可点(客户端 ID 为按钮、程序身份与可调用操作为灰色说明),状态正常但暂时不能获取令牌时在状态下提示;空列表使用「还没有程序客户端」定制空状态\n- 详情抽屉分「基本信息 / 可调用的操作 / 密钥 / 停用或归档」:调整操作就地展开,无改动不能保存,改动后须确认;平台已不再批准的操作照常列出并注明不生效,取消勾选后不能再选回\n- 密钥改为抽屉内的常驻分区:逐份显示状态与时间,撤销确认在该行下方展开,成功后以提示条告知并重读记录;更换密钥仍显示一次性回执\n- 调整操作、密钥操作与状态变更互相锁定,写入结果不明或冲突时不能切换到其他修改;保存或撤销后焦点留在抽屉内\n- 新建改为两步:先选程序身份,再选服务并勾选操作,底部「重新选择程序身份 / 创建程序客户端」,不再要求影响确认\n- ScopeChoices 改为与权限勾选一致的边框清单,新增 unavailable、legendHidden、hint;平台「程序可调用的操作」弹窗使用平台场景的说明\n- 同步程序接入与密钥单元测试,以及 acceptance-p10-t02、t03、t04 中的详情等待、新建步骤、调整操作、密钥分区与空状态文案\n\n验证:\n- npm run check(format:check、lint、typecheck、test、build):通过,Vitest 26 个文件 222 项全部通过;构建时 Vite 提示打包文件体积偏大,未核实是否为既有提示\n- node --check 检查 acceptance-p10-t02、t03、t04:通过\n- 演示环境没有程序客户端、可访问服务与程序身份,浏览器中以页面内临时改写接口响应的方式检查列表、详情四区、撤销与更换密钥表单、调整操作、新建两步与已归档只读状态(1280 宽、375 窄屏及亮/暗色),未提交写操作;平台「程序可调用的操作」弹窗打开查看未保存\n- 验收脚本 acceptance-p10-t02、t03、t04:未运行,需要独立隔离环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/ba844f0abb4b7b64a50d2a5b617e87e33aac5a14","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T07:57:52-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-p10-t02.mjs","iam-admin-web/scripts/acceptance-p10-t03.mjs","iam-admin-web/scripts/acceptance-p10-t04.mjs","iam-admin-web/src/pages/management/MachineClientsPage.tsx","iam-admin-web/src/pages/management/MachineContract.tsx","iam-admin-web/src/pages/management/MachineCredentials.tsx","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/machine-clients.test.tsx","iam-admin-web/src/test/machine-credentials.test.tsx"]},{"id":"91e187c7bfa1c897d22cd3fb7e5d30d7368a586d","message":"feat(console): 在角色分配中显示角色包含的权限并改用卡片选择分配对象\n\n角色分配页已随企业管理员改为分区抽屉,但业务模式下仍看不出一条分配实际给了哪些权限,分配对象名称下显示的是无意义的标识缩写,新建时用下拉框选择成员或用户组,页头徽标也与其他应用内页面不一致。\n\n实现内容:\n- 页头徽标改为「应用」,与权限清单、角色页一致\n- 分配对象说明:有与名称不同的成员代码或用户组代码时显示「类型 · 代码」,名称即代码时只显示类型,两者都没有才回退标识缩写;用户组不是正常状态时在名称下提示\n- 详情基本信息为角色补充灰色代码,新增「角色包含的权限」(按应用权限清单显示名称)\n- 分配弹窗第一步「分配给」改为横排的「成员 / 用户组」单选卡片;第二步选中角色后显示该角色包含的权限预览,读取失败不影响分配\n- BindingRecord 类型补充 group_code;同步 acceptance-t04 中选择分配对象类型的步骤\n\n验证:\n- npm run check(format:check、lint、typecheck、test、build):通过,Vitest 26 个文件 222 项全部通过;首次运行时 group-lifecycle 中一项焦点断言偶发失败,单独重跑 3 次及全量重跑均通过,与本次改动无关\n- node --check 检查 acceptance-t04:通过\n- 浏览器 1280 宽、375 窄屏及亮/暗色检查列表、详情抽屉与分配弹窗两步(切换成员/用户组、选择成员与角色、权限预览),未提交写操作;演示数据没有分给用户组的记录,用户组代码与归档提示未在页面上实际看到\n- 验收脚本 acceptance-t04:未运行,需要独立隔离环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/91e187c7bfa1c897d22cd3fb7e5d30d7368a586d","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T07:45:50-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-t04.mjs","iam-admin-web/src/lib/t04-api.ts","iam-admin-web/src/pages/management/BindingsPage.tsx","iam-admin-web/src/styles/authorization.css"]},{"id":"4a92a91f122f15d9c26a0ff0fc321e14b589777e","message":"feat(console): 把角色详情改为分区抽屉并重排权限清单\n\n角色详情原先是一张整体表单,改名、调整权限和停用归档混在一起,任何修改都要勾选影响确认;列表每行放「查看 X」按钮,权限清单页也没有筛选。按已定的列表与抽屉约定重排两页。\n\n实现内容:\n- 权限清单拆为独立组件:卡片说明给出权限总数与可放进角色的数量,加入本地名称/代码搜索与状态筛选、「去组合角色」链接,不能放进角色的原因用灰字说明,空清单使用公共空状态\n- 角色列表改用 OpenableRow 整行可点,并提供「还没有角色」定制空状态\n- 角色详情抽屉分「基本信息 / 包含的权限 / 停用或归档」三区:改名与调整权限就地展开,状态变更用单选卡片;同一时间只进行一项修改,每项修改都带上其余字段的当前值提交到原有整体保存接口\n- 改名不再要求影响确认;有分配记录时调整权限、以及任何状态变更仍须确认,草稿改动后确认失效;归档仍同时提交 revokeBindings\n- 基本信息显示分配记录数并提供「前往角色分配」链接;已归档角色只读,不提供修改入口\n- 新建角色改为独立弹窗,底部使用 FormActions「取消 / 创建角色」\n- 公共 PermissionPicker 改为带边框的勾选清单,显示「已选 N 项」,只在不可选的行注明原因,新增 legendHidden;企业管理员中「可分配的权限」随之生效\n- 重写角色相关单元测试(状态归档、改名、调整权限确认、归档只读、新建),同步 acceptance-t04 中的角色详情入口、状态变更与冲突复核步骤\n\n验证:\n- npm run check(format:check、lint、typecheck、test、build):通过,Vitest 26 个文件 222 项全部通过\n- node --check 检查 acceptance-t04:通过\n- 浏览器 1280 宽、375 窄屏及亮/暗色检查权限清单、角色列表、详情三区、新建弹窗与企业管理员可分配权限;已停用权限、需按数据范围分配的权限与已归档角色通过页面内临时改写响应查看,未做写操作\n- 验收脚本 acceptance-t04:未运行,需要独立隔离环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/4a92a91f122f15d9c26a0ff0fc321e14b589777e","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T07:39:38-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-t04.mjs","iam-admin-web/src/pages/management/AuthorizationShared.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/styles/authorization.css","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/authorization-management.test.tsx"]}],"total_commits":0,"head_commit":{"id":"faac5481c1cca66e4708222686b6588a43938150","message":"feat(console): 合并控制台逐页布局与样式改造\n\n控制台各页面原先列表用「查看详情」按钮、详情是整张表单、弹窗操作区与空状态各不相同,常用信息和危险操作混在一起。合并 feat/console-layout 分支,按统一的列表、抽屉与弹窗约定逐页重排企业内、平台侧与应用内的管理页面。\n\n实现内容:\n- 列表统一为整行可点(OpenableRow 或同交互的专用行),名称为链接或按钮、末列右箭头,需要处理的状态用 cell-note 提示;空状态改为带图标、说明与操作的公共 EmptyList,无数据时不显示分页\n- 详情抽屉按「基本信息 / 业务分区 / 危险区」分区,修改就地展开且同一时间只进行一项;危险操作默认收起,展开后用单选卡片或确认勾选\n- 企业、应用接入改为带分区标签的详情页;新增只读组织架构图;成员、部门、用户组、所有账号、企业与平台管理员、应用开通、操作记录、权限清单、角色、角色分配、程序接入(密钥管理内嵌抽屉)与程序身份完成改造\n- 弹窗底部统一使用 FormActions「取消 + 主操作」,多步弹窗提供「重新选择」;权限统一以名称为主、代码为辅显示,勾选清单统一为带边框的列表\n- 同步更新各页面单元测试与相关验收脚本中的文案和定位\n\n验证:\n- 分支上每次提交前运行 npm run check:format:check、lint、typecheck、test、build 通过,最后一次 Vitest 26 个文件 223 项全部通过\n- 各页面在浏览器 1280 宽、375 窄屏及亮/暗色下核对;程序接入、程序身份等演示环境缺数据的页面以页面内临时改写接口响应检查,未提交写操作\n- 验收脚本仅执行 node --check,未实际运行\n- 合并无冲突,main 上未单独重新运行检查;平台权限查询接入、个人中心尚未改造\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/faac5481c1cca66e4708222686b6588a43938150","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:07:51-07:00","added":["iam-admin-web/src/pages/management/OrganizationChartPage.tsx","iam-admin-web/src/pages/management/PlatformTenantPage.tsx","iam-admin-web/src/test/organizations.test.tsx"],"removed":[],"modified":["iam-admin-web/scripts/acceptance-group-lifecycle.mjs","iam-admin-web/scripts/acceptance-p10-t01.mjs","iam-admin-web/scripts/acceptance-p10-t02.mjs","iam-admin-web/scripts/acceptance-p10-t03.mjs","iam-admin-web/scripts/acceptance-p10-t04.mjs","iam-admin-web/scripts/acceptance-t02.mjs","iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/scripts/acceptance-t04.mjs","iam-admin-web/scripts/acceptance-t06.mjs","iam-admin-web/src/App.tsx","iam-admin-web/src/components/Management.tsx","iam-admin-web/src/lib/t04-api.ts","iam-admin-web/src/pages/management/ApplicationAdmissionPage.tsx","iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/ApplicationLifecycle.tsx","iam-admin-web/src/pages/management/ApplicationShared.tsx","iam-admin-web/src/pages/management/ApplicationsPage.tsx","iam-admin-web/src/pages/management/AuditPage.tsx","iam-admin-web/src/pages/management/AuthorizationShared.tsx","iam-admin-web/src/pages/management/BindingScopes.tsx","iam-admin-web/src/pages/management/BindingsPage.tsx","iam-admin-web/src/pages/management/GroupsPage.tsx","iam-admin-web/src/pages/management/MachineClientsPage.tsx","iam-admin-web/src/pages/management/MachineContract.tsx","iam-admin-web/src/pages/management/MachineCredentials.tsx","iam-admin-web/src/pages/management/MembersPage.tsx","iam-admin-web/src/pages/management/OrganizationsPage.tsx","iam-admin-web/src/pages/management/PlatformPages.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/pages/management/ServicePrincipalsPage.tsx","iam-admin-web/src/styles/applications.css","iam-admin-web/src/styles/audit.css","iam-admin-web/src/styles/authorization.css","iam-admin-web/src/styles/management.css","iam-admin-web/src/test/application-lifecycle.test.tsx","iam-admin-web/src/test/application-management.test.tsx","iam-admin-web/src/test/audit.test.tsx","iam-admin-web/src/test/authorization-management.test.tsx","iam-admin-web/src/test/group-editor.test.tsx","iam-admin-web/src/test/group-lifecycle.test.tsx","iam-admin-web/src/test/machine-clients.test.tsx","iam-admin-web/src/test/machine-credentials.test.tsx","iam-admin-web/src/test/management-integration.test.tsx","iam-admin-web/src/test/service-principals.test.tsx"]},"repository":{"id":125,"owner":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"228834386@qq.com","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"pengzhiyu"},"name":"IAM","full_name":"pengzhiyu/IAM","description":"Identity and Access Management(身份识别与访问管理)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":100939,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM/languages","html_url":"https://gitea.g-hi.com/pengzhiyu/IAM","url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM","link":"","ssh_url":"git@gitea.g-hi.com:pengzhiyu/IAM.git","clone_url":"https://gitea.g-hi.com/pengzhiyu/IAM.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-08T17:04:24+08:00","updated_at":"2026-10-11T23:51: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":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"pengzhiyu"},"sender":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"pengzhiyu"}}...
|
push
|
2
|
4
|
1791818109
|
1791818322
|
0
|
1791818107
|
1791818322
|
|
|
0
|
Edit
Delete
|
|
25587
|
Merge branch 'codex/chg036-stack-8173ef3f' Merge branch 'codex/chg036-stack-8173ef3f' of /Users/hillao/AI产品/企业AI应用开发群/企业控制面/enterprise-platform...
|
133
|
5
|
infra.yml
|
5
|
5
|
0
|
refs/heads/main
|
4a41adae67bcf5be2d98b33d6257c0a6de632d69
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8","after":"4a41adae67bcf5be2d98b33d6257c0a6de632d69","compare_url":"https://gitea.g-hi.com/luoanwu/infra/compare/9e2794afc2caec1dd31fe7ada1e875dfa91ca1f8...4a41adae67bcf5be2d98b33d6257c0a6de632d69","commits":[{"id":"4a41adae67bcf5be2d98b33d6257c0a6de632d69","message":"Merge branch 'codex/chg036-stack-8173ef3f' of /Users/hillao/AI产品/企业AI应用开发群/企业控制面/enterprise-platform\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/4a41adae67bcf5be2d98b33d6257c0a6de632d69","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:27:22-07:00","added":[],"removed":[],"modified":["release-candidate.schema.json"]},{"id":"4bb16dec341c6ad983cb2fc4d473446aaeae9323","message":"fix(chg036): propagate compose parity failures and validate both overlay sets\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/4bb16dec341c6ad983cb2fc4d473446aaeae9323","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:27:15-07:00","added":["test/compose-parity.test.mjs"],"removed":[],"modified":["docs/迁出方案.md","scripts/verify-compose-parity.sh"]},{"id":"90d82543c073535d2b92b5d0938efc9f7372eabc","message":"Merge Scope registration and candidate verification hardening\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/90d82543c073535d2b92b5d0938efc9f7372eabc","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:16:26-07:00","added":[],"removed":[],"modified":["release-candidate.schema.json"]},{"id":"0e290b999c46c483dcaabdb6b9c3322ed99b0105","message":"fix(governance): register OS Scope and bind candidate reports to CI attempt\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/0e290b999c46c483dcaabdb6b9c3322ed99b0105","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:13:44-07:00","added":[],"removed":[],"modified":["release-candidate.schema.json"]}],"total_commits":0,"head_commit":{"id":"4a41adae67bcf5be2d98b33d6257c0a6de632d69","message":"Merge branch 'codex/chg036-stack-8173ef3f' of /Users/hillao/AI产品/企业AI应用开发群/企业控制面/enterprise-platform\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/4a41adae67bcf5be2d98b33d6257c0a6de632d69","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-11T16:27:22-07:00","added":[],"removed":[],"modified":["release-candidate.schema.json"]},"repository":{"id":133,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"infra","full_name":"luoanwu/infra","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":441,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra/languages","html_url":"https://gitea.g-hi.com/luoanwu/infra","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/infra.git","clone_url":"https://gitea.g-hi.com/luoanwu/infra.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-11T21:11:15+08:00","updated_at":"2026-10-12T07:16: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":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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
|
1791761287
|
1791761468
|
0
|
1791761287
|
1791761468
|
|
|
0
|
Edit
Delete
|
|
24650
|
Reach disposable PostgreSQL through runner Docker Reach disposable PostgreSQL through runner Docker gateway...
|
121
|
5
|
kernel-ci.yml
|
5
|
5
|
0
|
refs/heads/main
|
a36511f3577f8c6e3b0198eed24ed3ebef756a15
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b9ae9838a77688fb2e40e839c7416057071ca33a","after":"a36511f3577f8c6e3b0198eed24ed3ebef756a15","compare_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/compare/b9ae9838a77688fb2e40e839c7416057071ca33a...a36511f3577f8c6e3b0198eed24ed3ebef756a15","commits":[{"id":"a36511f3577f8c6e3b0198eed24ed3ebef756a15","message":"Reach disposable PostgreSQL through runner Docker gateway\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/a36511f3577f8c6e3b0198eed24ed3ebef756a15","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-29T09:42:53-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]}],"total_commits":0,"head_commit":{"id":"a36511f3577f8c6e3b0198eed24ed3ebef756a15","message":"Reach disposable PostgreSQL through runner Docker gateway\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/a36511f3577f8c6e3b0198eed24ed3ebef756a15","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-29T09:42:53-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]},"repository":{"id":121,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"seven-domain-five-dimension-unified-model","full_name":"luoanwu/seven-domain-five-dimension-unified-model","description":"七域五维统一领域模型独立仓:领域内核、31章规范与运行记录","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":30317,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model/languages","html_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/seven-domain-five-dimension-unified-model.git","clone_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":6,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-29T05:06:56+08:00","updated_at":"2026-09-30T00:41: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
|
4
|
1790700179
|
1790700197
|
0
|
1790700178
|
1790700197
|
|
|
0
|
Edit
Delete
|
|
24164
|
fix(ticket): 通知投递补认领凭据与显式重试上限
|
82
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
601955837eb8caa25a91a2c2da96d9a06f8ea455
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","after":"601955837eb8caa25a91a2c2da96d9a06f8ea455","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/7c4b197f018b02f5ed675758af3f5be5dbd1de02...601955837eb8caa25a91a2c2da96d9a06f8ea455","commits":[{"id":"601955837eb8caa25a91a2c2da96d9a06f8ea455","message":"fix(ticket): 通知投递补认领凭据与显式重试上限\n\n领取此前只看 PENDING/FAILED,且完成回写只按 status=\"SENDING\" 匹配:进程崩在 deliver() 里的那行\n会永远停在 SENDING,没有任何路径能把它捡回来。另有一处重试上限双份常数——领取查询没有上限,\n死信判定走的是 @repo/notification-delivery 的包默认 3,两边靠巧合对齐,改任一边即静默不一致。\n\n- notifications 表加 claim_owner / claim_expires_at(两后端各一份 schema 与迁移),领取写认领、\n 完成按 claimOwner 回写并清空,与其余两个消费仓的 claim 列同形。\n- 领取前先把预算烧完的行(含认领过期仍卡在 SENDING 的)扫成死信;领取查询新增「SENDING 且\n 认领已过期」一支,并显式限定 attempts \u003c NOTIFICATION_MAX_ATTEMPTS。\n- 重试上限收敛为一个常数,同时进领取查询、死信清扫和 decideNotificationFailure。\n- 迁移不建索引:本仓迁移红线把非 CONCURRENTLY 的 CREATE INDEX 判为高危 DDL(首版实测被 exit 1\n 拦下),过期 SENDING 那一支由既有 notifications_tenant_status_next_attempt_idx 的\n (tenant_id, status) 前缀服务;要加 (tenant_id, status, claim_expires_at) 须按\n expand→migrate→contract 单独提,不混在这条加列迁移里。\n- packages/notification-delivery:未知异常不再默认可重试(模板体检失败这类确定性错误重发多少次\n 都是同一个结果),并补 NotificationTemplateError 的消息分支——缺它时 lastError 会把模板错误\n 写成「供应商不可用」。与报价仓的同名包语义就此一致。\n\n验证:pnpm check 全绿(15 道静态门禁 + lint + typecheck,含 write-guard / dual-backend /\nmigrations / write-chain);包单测 9/9。领取与清扫 SQL 在本机 Postgres 建临时库实跑:清扫只命中\n「预算烧完 + 认领过期」那一行,领取只取到「到期 PENDING」与「认领过期 SENDING」,正确跳过活认领、\n他租户与 next_attempt_at 未到的行,临时库跑完已删。\n\n未跑:两后端新增的认领回收验收用例(NestJS/Fastify 逐条镜像)属 check:runtime 级别,需 pgvector\n的真实库 + Redis + 附件基础设施,本机 PG 无 pgvector,未硬凑环境,故本次不声称该级证据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/601955837eb8caa25a91a2c2da96d9a06f8ea455","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-18T16:06:27-07:00","added":["apps/api-fastify/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql","apps/api-nestjs/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql"],"removed":[],"modified":["apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"601955837eb8caa25a91a2c2da96d9a06f8ea455","message":"fix(ticket): 通知投递补认领凭据与显式重试上限\n\n领取此前只看 PENDING/FAILED,且完成回写只按 status=\"SENDING\" 匹配:进程崩在 deliver() 里的那行\n会永远停在 SENDING,没有任何路径能把它捡回来。另有一处重试上限双份常数——领取查询没有上限,\n死信判定走的是 @repo/notification-delivery 的包默认 3,两边靠巧合对齐,改任一边即静默不一致。\n\n- notifications 表加 claim_owner / claim_expires_at(两后端各一份 schema 与迁移),领取写认领、\n 完成按 claimOwner 回写并清空,与其余两个消费仓的 claim 列同形。\n- 领取前先把预算烧完的行(含认领过期仍卡在 SENDING 的)扫成死信;领取查询新增「SENDING 且\n 认领已过期」一支,并显式限定 attempts \u003c NOTIFICATION_MAX_ATTEMPTS。\n- 重试上限收敛为一个常数,同时进领取查询、死信清扫和 decideNotificationFailure。\n- 迁移不建索引:本仓迁移红线把非 CONCURRENTLY 的 CREATE INDEX 判为高危 DDL(首版实测被 exit 1\n 拦下),过期 SENDING 那一支由既有 notifications_tenant_status_next_attempt_idx 的\n (tenant_id, status) 前缀服务;要加 (tenant_id, status, claim_expires_at) 须按\n expand→migrate→contract 单独提,不混在这条加列迁移里。\n- packages/notification-delivery:未知异常不再默认可重试(模板体检失败这类确定性错误重发多少次\n 都是同一个结果),并补 NotificationTemplateError 的消息分支——缺它时 lastError 会把模板错误\n 写成「供应商不可用」。与报价仓的同名包语义就此一致。\n\n验证:pnpm check 全绿(15 道静态门禁 + lint + typecheck,含 write-guard / dual-backend /\nmigrations / write-chain);包单测 9/9。领取与清扫 SQL 在本机 Postgres 建临时库实跑:清扫只命中\n「预算烧完 + 认领过期」那一行,领取只取到「到期 PENDING」与「认领过期 SENDING」,正确跳过活认领、\n他租户与 next_attempt_at 未到的行,临时库跑完已删。\n\n未跑:两后端新增的认领回收验收用例(NestJS/Fastify 逐条镜像)属 check:runtime 级别,需 pgvector\n的真实库 + Redis + 附件基础设施,本机 PG 无 pgvector,未硬凑环境,故本次不声称该级证据。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/601955837eb8caa25a91a2c2da96d9a06f8ea455","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-18T16:06:27-07:00","added":["apps/api-fastify/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql","apps/api-nestjs/prisma/migrations/20260918090000_notification_delivery_claim/migration.sql"],"removed":[],"modified":["apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"repository":{"id":82,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1867,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:08:57+08:00","updated_at":"2026-09-15T15:55:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789772883
|
1789772913
|
0
|
1789772841
|
1789772914
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|