|
26491
|
feat(store-performance): 新增只读经营视图读适配接缝(RO-T03 候选,默 feat(store-performance): 新增只读经营视图读适配接缝(RO-T03 候选,默认全关闭)...
|
6
|
5
|
ci.yml
|
23308
|
5
|
0
|
refs/heads/main
|
477ff5abe896dde2ca37b98b02bde71079b3de31
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c32dc69661d18fedc3e6939936535f3f5906bf7d","after":"477ff5abe896dde2ca37b98b02bde71079b3de31","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c32dc69661d18fedc3e6939936535f3f5906bf7d...477ff5abe896dde2ca37b98b02bde71079b3de31","commits":[{"id":"477ff5abe896dde2ca37b98b02bde71079b3de31","message":"feat(store-performance): 新增只读经营视图读适配接缝(RO-T03 候选,默认全关闭)\n\n新增 GET /store-performance/operating-view 与 OperatingViewV1 合同候选,\n按企业智能OS 02 层 RO 切片 §1.5—§1.9 与 02 包外只读接缝合同(c13a78f4)实现:\n\n- 六分区(customers/opportunities/quotations/service/knowledge/storeMetrics)逐区返回\n sourceRef、sourceVersion 或 observedAt、projectionWatermark(DIRECT_READ)、status/quality 与稳定原因码;\n snapshot 标明 FEDERATED_NON_ATOMIC\n- RO-T02 最小:门店上下文须经显式映射精确匹配,缺失/歧义/过期/外租户/目标不在本租户均 409;\n Site 未获准 403;query 不得携带 tenantId/actorId/role/allowedSites/cursor\n- 宿主装配默认全关闭:无映射、无 Site 准入、六区 NOT_CONNECTED,不回退演示数据;\n 租户级分区须显式批准(RO-Q02 未裁定前关闭)\n- 来源端口:按 02 合同重写的 EES CustomerAccount 按 ID 窄读客户端;本地商机、旧本地知识\n Top-K、门店经营分源指标只读端口(只用 find*,不经 KnowledgeService.getById,不写计数)\n- 金额:不经 number,未知币种不默认 CNY;GMV/退款/核销金额/预算/实支/结算分列,\n storeProfit 等旧组合口径隐藏并标明不是净利润\n- 单源超时、整请求预算、并发上限、无重试;全部已开通来源失败 503;返回前重验准入与映射\n\n原 operating-read-model 口径与类型不变;无迁移、无新表、无事件、无权限变更;未接通任何真实来源。\n本仓在企业智能OS中的角色未裁定,接缝可整体拆除。说明见\ndocs/architecture/omni-ro-operating-view-read-adapter-2026-10-22.md。\n\n验证(起点 c32dc69661d18fedc3e6939936535f3f5906bf7d):\n- vitest unit store-performance:6 文件 89 通过(新增 5 文件 80 例)\n- npm run test:unit:635 文件,8685 通过 / 16 失败;16 失败与改动前基线(630 文件,8605 通过 / 16 失败)逐项相同\n- 隔离库 integration(自建 pgvector/pg16,prisma migrate deploy 全部迁移,786 表语句级审计触发器):\n 3 通过(RO-03 正向零写、getById 负对照必写、RO-02 拒绝零写);未设 OMNI_RO_ISOLATED_DB 时 3 跳过\n- npm run type-check:1 错误,位于 marketing-chatbot.service.ts:1050,改动前基线同样存在\n- npm run lint:0 错误 / 3207 警告,与基线相同\n- audit:route-contract 覆盖率 100%、audit:route-registration 无重复、audit:tenant 无问题(报告文件未提交)\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/477ff5abe896dde2ca37b98b02bde71079b3de31","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-22T10:56:23-07:00","added":["backend/src/modules/store-performance/operating-view-ref-map.ts","backend/src/modules/store-performance/operating-view-scope.ts","backend/src/modules/store-performance/operating-view.adapters.test.ts","backend/src/modules/store-performance/operating-view.adapters.ts","backend/src/modules/store-performance/operating-view.contract.test.ts","backend/src/modules/store-performance/operating-view.contract.ts","backend/src/modules/store-performance/operating-view.controller.test.ts","backend/src/modules/store-performance/operating-view.read-repository.test.ts","backend/src/modules/store-performance/operating-view.read-repository.ts","backend/src/modules/store-performance/operating-view.service.test.ts","backend/src/modules/store-performance/operating-view.service.ts","backend/tests-integration/operating-view-readonly.integration.test.ts","docs/architecture/omni-ro-operating-view-read-adapter-2026-10-22.md"],"removed":[],"modified":["backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts"]}],"total_commits":0,"head_commit":{"id":"477ff5abe896dde2ca37b98b02bde71079b3de31","message":"feat(store-performance): 新增只读经营视图读适配接缝(RO-T03 候选,默认全关闭)\n\n新增 GET /store-performance/operating-view 与 OperatingViewV1 合同候选,\n按企业智能OS 02 层 RO 切片 §1.5—§1.9 与 02 包外只读接缝合同(c13a78f4)实现:\n\n- 六分区(customers/opportunities/quotations/service/knowledge/storeMetrics)逐区返回\n sourceRef、sourceVersion 或 observedAt、projectionWatermark(DIRECT_READ)、status/quality 与稳定原因码;\n snapshot 标明 FEDERATED_NON_ATOMIC\n- RO-T02 最小:门店上下文须经显式映射精确匹配,缺失/歧义/过期/外租户/目标不在本租户均 409;\n Site 未获准 403;query 不得携带 tenantId/actorId/role/allowedSites/cursor\n- 宿主装配默认全关闭:无映射、无 Site 准入、六区 NOT_CONNECTED,不回退演示数据;\n 租户级分区须显式批准(RO-Q02 未裁定前关闭)\n- 来源端口:按 02 合同重写的 EES CustomerAccount 按 ID 窄读客户端;本地商机、旧本地知识\n Top-K、门店经营分源指标只读端口(只用 find*,不经 KnowledgeService.getById,不写计数)\n- 金额:不经 number,未知币种不默认 CNY;GMV/退款/核销金额/预算/实支/结算分列,\n storeProfit 等旧组合口径隐藏并标明不是净利润\n- 单源超时、整请求预算、并发上限、无重试;全部已开通来源失败 503;返回前重验准入与映射\n\n原 operating-read-model 口径与类型不变;无迁移、无新表、无事件、无权限变更;未接通任何真实来源。\n本仓在企业智能OS中的角色未裁定,接缝可整体拆除。说明见\ndocs/architecture/omni-ro-operating-view-read-adapter-2026-10-22.md。\n\n验证(起点 c32dc69661d18fedc3e6939936535f3f5906bf7d):\n- vitest unit store-performance:6 文件 89 通过(新增 5 文件 80 例)\n- npm run test:unit:635 文件,8685 通过 / 16 失败;16 失败与改动前基线(630 文件,8605 通过 / 16 失败)逐项相同\n- 隔离库 integration(自建 pgvector/pg16,prisma migrate deploy 全部迁移,786 表语句级审计触发器):\n 3 通过(RO-03 正向零写、getById 负对照必写、RO-02 拒绝零写);未设 OMNI_RO_ISOLATED_DB 时 3 跳过\n- npm run type-check:1 错误,位于 marketing-chatbot.service.ts:1050,改动前基线同样存在\n- npm run lint:0 错误 / 3207 警告,与基线相同\n- audit:route-contract 覆盖率 100%、audit:route-registration 无重复、audit:tenant 无问题(报告文件未提交)\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/477ff5abe896dde2ca37b98b02bde71079b3de31","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-22T10:56:23-07:00","added":["backend/src/modules/store-performance/operating-view-ref-map.ts","backend/src/modules/store-performance/operating-view-scope.ts","backend/src/modules/store-performance/operating-view.adapters.test.ts","backend/src/modules/store-performance/operating-view.adapters.ts","backend/src/modules/store-performance/operating-view.contract.test.ts","backend/src/modules/store-performance/operating-view.contract.ts","backend/src/modules/store-performance/operating-view.controller.test.ts","backend/src/modules/store-performance/operating-view.read-repository.test.ts","backend/src/modules/store-performance/operating-view.read-repository.ts","backend/src/modules/store-performance/operating-view.service.test.ts","backend/src/modules/store-performance/operating-view.service.ts","backend/tests-integration/operating-view-readonly.integration.test.ts","docs/architecture/omni-ro-operating-view-read-adapter-2026-10-22.md"],"removed":[],"modified":["backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2143481,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-08-24T00:07: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":false,"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
|
1793069000
|
1793074320
|
0
|
1793068985
|
1793074320
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
26648
|
feat(store-performance): 新增只读经营视图读适配接缝(RO-T03 候选,默 feat(store-performance): 新增只读经营视图读适配接缝(RO-T03 候选,默认全关闭)...
|
160
|
5
|
ci.yml
|
1
|
5
|
0
|
refs/heads/main
|
477ff5abe896dde2ca37b98b02bde71079b3de31
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"477ff5abe896dde2ca37b98b02bde71079b3de31","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/eios/w0...477ff5abe896dde2ca37b98b02bde71079b3de31","commits":[],"total_commits":0,"head_commit":{"id":"477ff5abe896dde2ca37b98b02bde71079b3de31","message":"feat(store-performance): 新增只读经营视图读适配接缝(RO-T03 候选,默认全关闭)\n\n新增 GET /store-performance/operating-view 与 OperatingViewV1 合同候选,\n按企业智能OS 02 层 RO 切片 §1.5—§1.9 与 02 包外只读接缝合同(c13a78f4)实现:\n\n- 六分区(customers/opportunities/quotations/service/knowledge/storeMetrics)逐区返回\n sourceRef、sourceVersion 或 observedAt、projectionWatermark(DIRECT_READ)、status/quality 与稳定原因码;\n snapshot 标明 FEDERATED_NON_ATOMIC\n- RO-T02 最小:门店上下文须经显式映射精确匹配,缺失/歧义/过期/外租户/目标不在本租户均 409;\n Site 未获准 403;query 不得携带 tenantId/actorId/role/allowedSites/cursor\n- 宿主装配默认全关闭:无映射、无 Site 准入、六区 NOT_CONNECTED,不回退演示数据;\n 租户级分区须显式批准(RO-Q02 未裁定前关闭)\n- 来源端口:按 02 合同重写的 EES CustomerAccount 按 ID 窄读客户端;本地商机、旧本地知识\n Top-K、门店经营分源指标只读端口(只用 find*,不经 KnowledgeService.getById,不写计数)\n- 金额:不经 number,未知币种不默认 CNY;GMV/退款/核销金额/预算/实支/结算分列,\n storeProfit 等旧组合口径隐藏并标明不是净利润\n- 单源超时、整请求预算、并发上限、无重试;全部已开通来源失败 503;返回前重验准入与映射\n\n原 operating-read-model 口径与类型不变;无迁移、无新表、无事件、无权限变更;未接通任何真实来源。\n本仓在企业智能OS中的角色未裁定,接缝可整体拆除。说明见\ndocs/architecture/omni-ro-operating-view-read-adapter-2026-10-22.md。\n\n验证(起点 c32dc69661d18fedc3e6939936535f3f5906bf7d):\n- vitest unit store-performance:6 文件 89 通过(新增 5 文件 80 例)\n- npm run test:unit:635 文件,8685 通过 / 16 失败;16 失败与改动前基线(630 文件,8605 通过 / 16 失败)逐项相同\n- 隔离库 integration(自建 pgvector/pg16,prisma migrate deploy 全部迁移,786 表语句级审计触发器):\n 3 通过(RO-03 正向零写、getById 负对照必写、RO-02 拒绝零写);未设 OMNI_RO_ISOLATED_DB 时 3 跳过\n- npm run type-check:1 错误,位于 marketing-chatbot.service.ts:1050,改动前基线同样存在\n- npm run lint:0 错误 / 3207 警告,与基线相同\n- audit:route-contract 覆盖率 100%、audit:route-registration 无重复、audit:tenant 无问题(报告文件未提交)\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/477ff5abe896dde2ca37b98b02bde71079b3de31","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-22T10:56:23-07:00","added":["backend/src/modules/store-performance/operating-view-ref-map.ts","backend/src/modules/store-performance/operating-view-scope.ts","backend/src/modules/store-performance/operating-view.adapters.test.ts","backend/src/modules/store-performance/operating-view.adapters.ts","backend/src/modules/store-performance/operating-view.contract.test.ts","backend/src/modules/store-performance/operating-view.contract.ts","backend/src/modules/store-performance/operating-view.controller.test.ts","backend/src/modules/store-performance/operating-view.read-repository.test.ts","backend/src/modules/store-performance/operating-view.read-repository.ts","backend/src/modules/store-performance/operating-view.service.test.ts","backend/src/modules/store-performance/operating-view.service.ts","backend/tests-integration/operating-view-readonly.integration.test.ts","docs/architecture/omni-ro-operating-view-read-adapter-2026-10-22.md"],"removed":[],"modified":["backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts"]},"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":1895929,"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":11,"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-30T09:42:55+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1793324579
|
1793329907
|
0
|
1793324578
|
1793329907
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23999
|
feat(stack): runtime 传入身份模块 dev 运行配置(IDP_* 四变量)——d feat(stack): runtime 传入身份模块 dev 运行配置(IDP_* 四变量)——dev 首租户 bootstrap,托管登录页首次带真实事务渲染(缺失清单 I-7)...
|
116
|
5
|
platform.yml
|
71
|
5
|
0
|
refs/heads/main
|
ec19ba1b701730e2901aba160298111d06e8660c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"784e723973b9e1e6e44c2b87cffb8f2a7cd545c1","after":"ec19ba1b701730e2901aba160298111d06e8660c","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/784e723973b9e1e6e44c2b87cffb8f2a7cd545c1...ec19ba1b701730e2901aba160298111d06e8660c","commits":[{"id":"ec19ba1b701730e2901aba160298111d06e8660c","message":"feat(stack): runtime 传入身份模块 dev 运行配置(IDP_* 四变量)——dev 首租户 bootstrap,托管登录页首次带真实事务渲染(缺失清单 I-7)\n\n- compose runtime 服务新增 IDP_CANONICAL_ORIGIN / IDP_BOOTSTRAP_TOKEN / IDP_PUBLIC_JWKS_JSON / IDP_LOCAL_SIGNING_KEYS_JSON(值在仓外 .secrets;dev 本地 RSA 密钥,DEC-006 / 025 终态 OpenBao Transit)\n- dev:容器重建后用 bootstrap 接口建租户 demo、管理员与公开客户端 demo-console;authorize(S256)302 到带 transaction_id 的登录页并渲染表单;无事务与 plain challenge 均被拒;check:deployed passed\n- docs:runbook §2 补身份 dev 配置与 bootstrap / 授权步骤;缺失清单 §8.1 补记;stack/reports/runtime-up.2026-09-16-identity.json 记录(口令与密钥不入记录)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/ec19ba1b701730e2901aba160298111d06e8660c","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:57:49-07:00","added":["stack/reports/runtime-up.2026-09-16-identity.json"],"removed":[],"modified":["docs/runbook.md","docs/缺失模块完善清单-2026-09-16.md","stack/compose.yaml"]}],"total_commits":0,"head_commit":{"id":"ec19ba1b701730e2901aba160298111d06e8660c","message":"feat(stack): runtime 传入身份模块 dev 运行配置(IDP_* 四变量)——dev 首租户 bootstrap,托管登录页首次带真实事务渲染(缺失清单 I-7)\n\n- compose runtime 服务新增 IDP_CANONICAL_ORIGIN / IDP_BOOTSTRAP_TOKEN / IDP_PUBLIC_JWKS_JSON / IDP_LOCAL_SIGNING_KEYS_JSON(值在仓外 .secrets;dev 本地 RSA 密钥,DEC-006 / 025 终态 OpenBao Transit)\n- dev:容器重建后用 bootstrap 接口建租户 demo、管理员与公开客户端 demo-console;authorize(S256)302 到带 transaction_id 的登录页并渲染表单;无事务与 plain challenge 均被拒;check:deployed passed\n- docs:runbook §2 补身份 dev 配置与 bootstrap / 授权步骤;缺失清单 §8.1 补记;stack/reports/runtime-up.2026-09-16-identity.json 记录(口令与密钥不入记录)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/ec19ba1b701730e2901aba160298111d06e8660c","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:57:49-07:00","added":["stack/reports/runtime-up.2026-09-16-identity.json"],"removed":[],"modified":["docs/runbook.md","docs/缺失模块完善清单-2026-09-16.md","stack/compose.yaml"]},"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":15057,"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":42,"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-17T07:37: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
|
30
|
1789603074
|
1789603255
|
0
|
1789603073
|
1789604185
|
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
|
|
25500
|
feat(stack): dev 集成凭据到期检查挂定时告警(S-56)
|
116
|
5
|
platform.yml
|
574
|
5
|
0
|
refs/heads/main
|
dbd1fd603b8d6829aac72b85c13d268659bba306
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"876df0b3271b45e1e54c0c8efd3106bd45351198","after":"dbd1fd603b8d6829aac72b85c13d268659bba306","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/876df0b3271b45e1e54c0c8efd3106bd45351198...dbd1fd603b8d6829aac72b85c13d268659bba306","commits":[{"id":"dbd1fd603b8d6829aac72b85c13d268659bba306","message":"feat(stack): dev 集成凭据到期检查挂定时告警(S-56)\n\n- dev-credential-expiry.mjs 加 --alertmanager-url:已过期(critical)/ 72 h 内到期(warning)逐条投 DevCredentialExpiry 告警,来源不可读投 DevCredentialExpiryCheckFailed;endsAt = 现在 + 13 h,每轮重投保持 firing,续期或撤销后到点自动解除;投递失败退出 4。判定与告警构造抽成纯函数并补 4 例单测\n- install-launchd.mjs:照 stack/backup/install-launchd.py 约定装 LaunchAgent com.juhai.enterprise-platform.dev-credential-expiry(每 6 h + 装好即跑;只执行按提交摘要固定的脚本副本;node 用 Homebrew opt 稳定入口;拒绝替换无关同名 Agent)\n- README 写明告警语义、安装 / 卸载与边界(唯一接收端是同机 C16 会话)\n\n验证:手动投递 2 条(KTV ktv:integration、OS MCP reader 已过期)→ Alertmanager active 并路由 platform-im-webhook,webhook 通知 8→9、失败 0,C16 账本 03:56:50Z 两条 active service 消息;单测 4/4;doc-claims / gate-flow / stub-surface 通过。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/dbd1fd603b8d6829aac72b85c13d268659bba306","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-10T20:57:59-07:00","added":["stack/credentials/dev-credential-expiry.test.mjs","stack/credentials/install-launchd.mjs"],"removed":[],"modified":["stack/README.md","stack/credentials/README.md","stack/credentials/dev-credential-expiry.mjs"]}],"total_commits":0,"head_commit":{"id":"dbd1fd603b8d6829aac72b85c13d268659bba306","message":"feat(stack): dev 集成凭据到期检查挂定时告警(S-56)\n\n- dev-credential-expiry.mjs 加 --alertmanager-url:已过期(critical)/ 72 h 内到期(warning)逐条投 DevCredentialExpiry 告警,来源不可读投 DevCredentialExpiryCheckFailed;endsAt = 现在 + 13 h,每轮重投保持 firing,续期或撤销后到点自动解除;投递失败退出 4。判定与告警构造抽成纯函数并补 4 例单测\n- install-launchd.mjs:照 stack/backup/install-launchd.py 约定装 LaunchAgent com.juhai.enterprise-platform.dev-credential-expiry(每 6 h + 装好即跑;只执行按提交摘要固定的脚本副本;node 用 Homebrew opt 稳定入口;拒绝替换无关同名 Agent)\n- README 写明告警语义、安装 / 卸载与边界(唯一接收端是同机 C16 会话)\n\n验证:手动投递 2 条(KTV ktv:integration、OS MCP reader 已过期)→ Alertmanager active 并路由 platform-im-webhook,webhook 通知 8→9、失败 0,C16 账本 03:56:50Z 两条 active service 消息;单测 4/4;doc-claims / gate-flow / stub-surface 通过。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/dbd1fd603b8d6829aac72b85c13d268659bba306","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-10T20:57:59-07:00","added":["stack/credentials/dev-credential-expiry.test.mjs","stack/credentials/install-launchd.mjs"],"removed":[],"modified":["stack/README.md","stack/credentials/README.md","stack/credentials/dev-credential-expiry.mjs"]},"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":36764,"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":52,"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-10-11T11:56:26+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
|
33
|
1791691125
|
1791691181
|
0
|
1791691119
|
1791691192
|
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
|
|
24001
|
feat(stack): Grafana 业务配置进仓——首页业务面 SLO、默认 zh-Hans feat(stack): Grafana 业务配置进仓——首页业务面 SLO、默认 zh-Hans 与 Asia/Shanghai、单组织新用户 Viewer、不外联;dev 补 root_url...
|
116
|
5
|
platform.yml
|
73
|
5
|
0
|
refs/heads/main
|
defd9d729060bf91f2fb1f38c165ea6b27e28780
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ec29ace2dc8f4e3e51b716c3bb673b741f85b47f","after":"defd9d729060bf91f2fb1f38c165ea6b27e28780","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/ec29ace2dc8f4e3e51b716c3bb673b741f85b47f...defd9d729060bf91f2fb1f38c165ea6b27e28780","commits":[{"id":"defd9d729060bf91f2fb1f38c165ea6b27e28780","message":"feat(stack): Grafana 业务配置进仓——首页业务面 SLO、默认 zh-Hans 与 Asia/Shanghai、单组织新用户 Viewer、不外联;dev 补 root_url\n\n并行会话产出,按原样收入。compose grafana 服务 GF_* 十余项与 provisioning 同口径,四份仪表板 timezone 留空以继承服务默认,dev overlay 的 GF_SERVER_ROOT_URL 用主机端口;记录 stack/reports/grafana-config.2026-09-16.json(dev / staging 两套 compose config 渲染通过)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/defd9d729060bf91f2fb1f38c165ea6b27e28780","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-16T17:16:33-07:00","added":["stack/reports/grafana-config.2026-09-16.json"],"removed":[],"modified":["stack/README.md","stack/compose.yaml","stack/otel/grafana/provisioning/dashboards/json/platform-business-slo.json","stack/otel/grafana/provisioning/dashboards/json/platform-logs-traces.json","stack/otel/grafana/provisioning/dashboards/json/platform-otel-pipeline.json","stack/otel/grafana/provisioning/dashboards/json/platform-runtime.json","stack/overlays/dev.yaml"]},{"id":"e041207161fe42a87d6eb19b57b26fe2ad0a6859","message":"feat(runtime,contracts): 缺口代码 A-1 / A-2——审计 HTTP 面(audit-append.v1 / audit-query.v1 候选)、进程内 audit-ledger 端口、Q04 两模式协议与故障夹具\n\n按决策批次 2026-09-16 C-1(Q04 采纳两模式)落缺失清单 A-1 / A-2;顺序照 Q04:先协议与六类故障夹具,再改 M6,SDK 不动。\n\n- 协议(domain/audit-commit-protocol.ts):线上形状与 @juhai/client-audit(PR #44)逐字段一致,event_id / digest 只由内容决定;\n 提交模式由动作登记 commit_mode 决定(local-durable / central-prepared),调用方不可降级,result 须引用已回执 prepare;\n AUDIT_FAULT_MATRIX 六类注入点标 owner / m6;夹具评估器新增 append-event / commit / intake 三条规则,夹具 +18 例。\n- A-1:迁移 202609160002_audit_commit_protocol(commit_mode 列 + platform_audit_intake,FORCE RLS + 不可改;头引 DEC-020—023);\n AuditStore.appendIntake / getEvent(append 抽成事务内 appendInTx,语义不变);createAuditRuntime(PLATFORM_AUDIT_HTTP_ENABLED=1、\n 限 development/test、只收 JWT、普通角色);kit 增 PlatformModule.auditRuntime;NestJS POST /api/v1/audit/events、\n GET /api/v1/audit/events/{eventId}、GET /api/v1/audit/events/checkpoint;两份候选 OpenAPI 随仓(pending CHG-004)。\n- A-2:AuditSinkPort 按 PLATFORM_PERSISTENCE_ENABLED 在 audit-shape 与 audit-ledger 间切换(与 permission / fact 同款);\n event_id 与 client-audit 同 identity 派生,trace 缺失时派生稳定 32 hex。\n- 判责:整批结构错 400、producer ≠ JWT 主体 403、逐条拒绝在 200 的 rejected[];producer.client_id / app_id 都须等于 azp;\n 查询面只允许记录所属应用读,?access_token= 一律 401。\n\n复核:audit 单测 80 / 集成 19(隔离 PG)/ e2e 12(真实 NestJS + JWT,含端口一致性 sink 画像);根 pnpm check 全链 exit 0\n(check:fixtures 17 套件 184 例);报告未回绑,留给 clean 树上的 chore(reports)。未做:A-3(PR #44)、A-5 / A-6、G-1、S-5,\nOwner 侧四类故障义务待首个消费者接入后三方对账;见 docs/缺失模块完善清单-2026-09-16.md §9。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e041207161fe42a87d6eb19b57b26fe2ad0a6859","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-16T17:15:30-07:00","added":["contracts/candidates/contracts/audit-append-api.v1.openapi.json","contracts/candidates/contracts/audit-query-api.v1.openapi.json","runtime/apps/api-nestjs/src/platform/http/audit-events.controller.ts","runtime/modules/audit/prisma/migrations/202609160002_audit_commit_protocol/migration.sql","runtime/modules/audit/src/domain/audit-commit-protocol.test.ts","runtime/modules/audit/src/domain/audit-commit-protocol.ts","runtime/modules/audit/src/persistence/http-runtime.test.ts","runtime/modules/audit/src/persistence/http-runtime.ts","runtime/modules/audit/test/negative/append-intake.integration.ts","runtime/modules/kit/src/audit-runtime.ts","runtime/test/e2e/audit-http.test.ts"],"removed":[],"modified":["contracts/candidates/README.md","docs/runbook.md","docs/缺失模块完善清单-2026-09-16.md","docs/能力设计/设计问题收口方案.md","runtime/apps/api-nestjs/src/platform/platform-http.module.ts","runtime/modules/audit/prisma/schema.prisma","runtime/modules/audit/src/domain/fixture-evaluator.ts","runtime/modules/audit/src/domain/index.ts","runtime/modules/audit/src/index.ts","runtime/modules/audit/src/persistence/audit-store.ts","runtime/modules/audit/src/ports/audit-sink.port.test.ts","runtime/modules/audit/src/ports/audit-sink.port.ts","runtime/modules/audit/test/fixtures/audit.fixtures.json","runtime/modules/kit/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"defd9d729060bf91f2fb1f38c165ea6b27e28780","message":"feat(stack): Grafana 业务配置进仓——首页业务面 SLO、默认 zh-Hans 与 Asia/Shanghai、单组织新用户 Viewer、不外联;dev 补 root_url\n\n并行会话产出,按原样收入。compose grafana 服务 GF_* 十余项与 provisioning 同口径,四份仪表板 timezone 留空以继承服务默认,dev overlay 的 GF_SERVER_ROOT_URL 用主机端口;记录 stack/reports/grafana-config.2026-09-16.json(dev / staging 两套 compose config 渲染通过)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/defd9d729060bf91f2fb1f38c165ea6b27e28780","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-16T17:16:33-07:00","added":["stack/reports/grafana-config.2026-09-16.json"],"removed":[],"modified":["stack/README.md","stack/compose.yaml","stack/otel/grafana/provisioning/dashboards/json/platform-business-slo.json","stack/otel/grafana/provisioning/dashboards/json/platform-logs-traces.json","stack/otel/grafana/provisioning/dashboards/json/platform-otel-pipeline.json","stack/otel/grafana/provisioning/dashboards/json/platform-runtime.json","stack/overlays/dev.yaml"]},"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":15138,"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":42,"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-17T08:09: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
|
14
|
0
|
1789604295
|
0
|
1789604198
|
1789604295
|
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
|
|
24461
|
feat(skills): 从会话记忆提炼九个项目操作技能
|
117
|
5
|
governance.yml
|
127
|
5
|
0
|
refs/heads/main
|
540a4acfff424daba3d9fb2f4aaf2b89527ba6eb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7c3605870e52ad8d7c526dac84c8bdce2830ec13","after":"540a4acfff424daba3d9fb2f4aaf2b89527ba6eb","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/7c3605870e52ad8d7c526dac84c8bdce2830ec13...540a4acfff424daba3d9fb2f4aaf2b89527ba6eb","commits":[{"id":"540a4acfff424daba3d9fb2f4aaf2b89527ba6eb","message":"feat(skills): 从会话记忆提炼九个项目操作技能\n\n门禁跑读(ep-run-gates)、报告回绑(ep-report-rebind)、本机 check:runtime(ep-check-runtime)、\n并行会话纪律(ep-parallel-sessions)、契约域补强(ep-contract-hardening)、模块升 authority\n(ep-module-authority)、治理文档与裁决(ep-governance-docs)、dev 部署(ep-dev-deploy)、\n数字员工OS 验收(os-acceptance)。只收程序与判据,状态一律改为「如何查当前值」;\n脚本名 / 路径 / 环境变量均对照仓内现状核实。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/540a4acfff424daba3d9fb2f4aaf2b89527ba6eb","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-23T17:42:40-07:00","added":[".agents/skills/ep-check-runtime/SKILL.md",".agents/skills/ep-check-runtime/agents/openai.yaml",".agents/skills/ep-check-runtime/references/failure-triage.md",".agents/skills/ep-check-runtime/references/recipe.md",".agents/skills/ep-contract-hardening/SKILL.md",".agents/skills/ep-contract-hardening/agents/openai.yaml",".agents/skills/ep-contract-hardening/references/wave-and-release.md",".agents/skills/ep-dev-deploy/SKILL.md",".agents/skills/ep-dev-deploy/agents/openai.yaml",".agents/skills/ep-dev-deploy/references/runtime-switch.md",".agents/skills/ep-dev-deploy/references/workbench.md",".agents/skills/ep-governance-docs/SKILL.md",".agents/skills/ep-governance-docs/agents/openai.yaml",".agents/skills/ep-governance-docs/references/consistency-rules.md",".agents/skills/ep-governance-docs/references/decision-workflow.md",".agents/skills/ep-governance-docs/references/gap-registers.md",".agents/skills/ep-module-authority/SKILL.md",".agents/skills/ep-module-authority/agents/openai.yaml",".agents/skills/ep-module-authority/references/authority-gates.md",".agents/skills/ep-module-authority/references/facts-outbox.md",".agents/skills/ep-module-authority/references/health-probes.md",".agents/skills/ep-module-authority/references/http-routes.md",".agents/skills/ep-module-authority/references/rls-prisma.md",".agents/skills/ep-parallel-sessions/SKILL.md",".agents/skills/ep-parallel-sessions/agents/openai.yaml",".agents/skills/ep-parallel-sessions/references/git-commit-recipes.md",".agents/skills/ep-report-rebind/SKILL.md",".agents/skills/ep-report-rebind/agents/openai.yaml",".agents/skills/ep-report-rebind/references/rebind-sequences.md",".agents/skills/ep-report-rebind/references/worktree-recipes.md",".agents/skills/ep-run-gates/SKILL.md",".agents/skills/ep-run-gates/agents/openai.yaml",".agents/skills/ep-run-gates/references/gate-ring-map.md",".agents/skills/ep-run-gates/references/governance-layer-gates.md",".agents/skills/os-acceptance/SKILL.md",".agents/skills/os-acceptance/agents/openai.yaml",".agents/skills/os-acceptance/references/realtime-and-parity.md",".agents/skills/os-acceptance/references/runners.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"540a4acfff424daba3d9fb2f4aaf2b89527ba6eb","message":"feat(skills): 从会话记忆提炼九个项目操作技能\n\n门禁跑读(ep-run-gates)、报告回绑(ep-report-rebind)、本机 check:runtime(ep-check-runtime)、\n并行会话纪律(ep-parallel-sessions)、契约域补强(ep-contract-hardening)、模块升 authority\n(ep-module-authority)、治理文档与裁决(ep-governance-docs)、dev 部署(ep-dev-deploy)、\n数字员工OS 验收(os-acceptance)。只收程序与判据,状态一律改为「如何查当前值」;\n脚本名 / 路径 / 环境变量均对照仓内现状核实。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/540a4acfff424daba3d9fb2f4aaf2b89527ba6eb","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-23T17:42:40-07:00","added":[".agents/skills/ep-check-runtime/SKILL.md",".agents/skills/ep-check-runtime/agents/openai.yaml",".agents/skills/ep-check-runtime/references/failure-triage.md",".agents/skills/ep-check-runtime/references/recipe.md",".agents/skills/ep-contract-hardening/SKILL.md",".agents/skills/ep-contract-hardening/agents/openai.yaml",".agents/skills/ep-contract-hardening/references/wave-and-release.md",".agents/skills/ep-dev-deploy/SKILL.md",".agents/skills/ep-dev-deploy/agents/openai.yaml",".agents/skills/ep-dev-deploy/references/runtime-switch.md",".agents/skills/ep-dev-deploy/references/workbench.md",".agents/skills/ep-governance-docs/SKILL.md",".agents/skills/ep-governance-docs/agents/openai.yaml",".agents/skills/ep-governance-docs/references/consistency-rules.md",".agents/skills/ep-governance-docs/references/decision-workflow.md",".agents/skills/ep-governance-docs/references/gap-registers.md",".agents/skills/ep-module-authority/SKILL.md",".agents/skills/ep-module-authority/agents/openai.yaml",".agents/skills/ep-module-authority/references/authority-gates.md",".agents/skills/ep-module-authority/references/facts-outbox.md",".agents/skills/ep-module-authority/references/health-probes.md",".agents/skills/ep-module-authority/references/http-routes.md",".agents/skills/ep-module-authority/references/rls-prisma.md",".agents/skills/ep-parallel-sessions/SKILL.md",".agents/skills/ep-parallel-sessions/agents/openai.yaml",".agents/skills/ep-parallel-sessions/references/git-commit-recipes.md",".agents/skills/ep-report-rebind/SKILL.md",".agents/skills/ep-report-rebind/agents/openai.yaml",".agents/skills/ep-report-rebind/references/rebind-sequences.md",".agents/skills/ep-report-rebind/references/worktree-recipes.md",".agents/skills/ep-run-gates/SKILL.md",".agents/skills/ep-run-gates/agents/openai.yaml",".agents/skills/ep-run-gates/references/gate-ring-map.md",".agents/skills/ep-run-gates/references/governance-layer-gates.md",".agents/skills/os-acceptance/SKILL.md",".agents/skills/os-acceptance/agents/openai.yaml",".agents/skills/os-acceptance/references/realtime-and-parity.md",".agents/skills/os-acceptance/references/runners.md"],"removed":[],"modified":[]},"repository":{"id":117,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":16794,"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":4,"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-24T07:39: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
|
4
|
1790210645
|
1790210660
|
0
|
1790210644
|
1790210660
|
|
|
0
|
Edit
Delete
|
|
23507
|
feat(skills)+feat(web): 技能目录治理与熟练度真实对接 + 响应式工作台 + feat(skills)+feat(web): 技能目录治理与熟练度真实对接 + 响应式工作台 + G18/G21 收口...
|
76
|
5
|
governance.yml
|
8
|
5
|
0
|
refs/heads/main
|
5e0044558f1104cbbaefb759bd0d70c3a5049418
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"29718124b1918bbc4d17c98875c6043ec5fa3048","after":"5e0044558f1104cbbaefb759bd0d70c3a5049418","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/29718124b1918bbc4d17c98875c6043ec5fa3048...5e0044558f1104cbbaefb759bd0d70c3a5049418","commits":[{"id":"5e0044558f1104cbbaefb759bd0d70c3a5049418","message":"feat(skills)+feat(web): 技能目录治理与熟练度真实对接 + 响应式工作台 + G18/G21 收口\n\n技能管理治理(先登记后使用):\n- contracts 新增 skill.ts 单源:SKILL_NAME_PATTERN / registerSkillSchema /\n findUnknownSkills / toSkillProficiencySnapshot(两后端只做框架胶水,防 G17 漂移)\n- 两后端对等 GET/POST /api/skills 幂等登记(新建 201 + 同 tx 发 skill.registered,\n 重复 200 同行;P2002 窄捕获);任务/触发器模板 requiredSkills 构造性校验,\n 未登记 400 UNKNOWN_SKILLS 附清单(TaskDependency 同款先例,负向已验证:\n 拼错名不建任务、不污染目录、不再静默铸造 ActorSkillState 履历)\n- web SkillPicker 目录化表单(任务/自动化共用;显式登记新技能名)\n\n熟练度真实对接(修复蓝图与代码漂移):\n- 装配事务内读 ActorSkillState → 快照 skillProficiency → LLM prompt 渲染执行者履历\n (ANALYSIS_PROMPT_VERSION=2);两后端「二次装配快照携带 count=1」断言钉死\n\nG18 盲区收口:两后端 learning.concurrency.test.ts(行锁定序双事务:乐观锁 0 行拒绝\n+ 整事务回滚计数不丢不重 + 全新技能并发首建 P2002 防双行)\n\n响应式工作台改版:手机端底部导航 / PC 端侧栏 + 2 个响应式 e2e 用例;\nRoleAssignmentsPanel(G8 角色管理只读面);G21 agent-adapters 生成器与比对门禁接入\n\n治理回灌:registry 登记 skills 资产(fork-readiness/dual-backend/validation/outbox\n接管)、owner-matrix/work/learning 蓝图/词典/CLAUDE.md 动态区同步、\n棘轮收紧 testsPassed=368 / ownTests=54 / ownTestCases=360\n\n证据(本地工作区,2026-08-20):pnpm check 静态 12 项全绿;check:runtime 368/368\n(PG:55447/digital_employee_os_skills_20260820 + Redis:6397/9);check:ui 13/13\n(含 SkillPicker 全链路与响应式用例,端口 3151/3253)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5e0044558f1104cbbaefb759bd0d70c3a5049418","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T02:49:23-07:00","added":[".agents/skills/business-module-intake/SKILL.md","apps/api-fastify/src/modules/work/skills.service.ts","apps/api-fastify/src/routes/skills.ts","apps/api-nestjs/src/work/skills.controller.ts","apps/api-nestjs/src/work/skills.service.ts","apps/web/src/components/RoleAssignmentsPanel.tsx","apps/web/src/components/workbench/SkillPicker.tsx","packages/contracts/src/skill.test.ts","packages/contracts/src/skill.ts","reports/agent-adapters.latest.json","scripts/check-agent-adapters.mjs"],"removed":[],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/fullstack-7layer-react/SKILL.md","CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/errors.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/learning.concurrency.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/learning.concurrency.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/JobsPanel.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/StateBadge.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.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/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"5e0044558f1104cbbaefb759bd0d70c3a5049418","message":"feat(skills)+feat(web): 技能目录治理与熟练度真实对接 + 响应式工作台 + G18/G21 收口\n\n技能管理治理(先登记后使用):\n- contracts 新增 skill.ts 单源:SKILL_NAME_PATTERN / registerSkillSchema /\n findUnknownSkills / toSkillProficiencySnapshot(两后端只做框架胶水,防 G17 漂移)\n- 两后端对等 GET/POST /api/skills 幂等登记(新建 201 + 同 tx 发 skill.registered,\n 重复 200 同行;P2002 窄捕获);任务/触发器模板 requiredSkills 构造性校验,\n 未登记 400 UNKNOWN_SKILLS 附清单(TaskDependency 同款先例,负向已验证:\n 拼错名不建任务、不污染目录、不再静默铸造 ActorSkillState 履历)\n- web SkillPicker 目录化表单(任务/自动化共用;显式登记新技能名)\n\n熟练度真实对接(修复蓝图与代码漂移):\n- 装配事务内读 ActorSkillState → 快照 skillProficiency → LLM prompt 渲染执行者履历\n (ANALYSIS_PROMPT_VERSION=2);两后端「二次装配快照携带 count=1」断言钉死\n\nG18 盲区收口:两后端 learning.concurrency.test.ts(行锁定序双事务:乐观锁 0 行拒绝\n+ 整事务回滚计数不丢不重 + 全新技能并发首建 P2002 防双行)\n\n响应式工作台改版:手机端底部导航 / PC 端侧栏 + 2 个响应式 e2e 用例;\nRoleAssignmentsPanel(G8 角色管理只读面);G21 agent-adapters 生成器与比对门禁接入\n\n治理回灌:registry 登记 skills 资产(fork-readiness/dual-backend/validation/outbox\n接管)、owner-matrix/work/learning 蓝图/词典/CLAUDE.md 动态区同步、\n棘轮收紧 testsPassed=368 / ownTests=54 / ownTestCases=360\n\n证据(本地工作区,2026-08-20):pnpm check 静态 12 项全绿;check:runtime 368/368\n(PG:55447/digital_employee_os_skills_20260820 + Redis:6397/9);check:ui 13/13\n(含 SkillPicker 全链路与响应式用例,端口 3151/3253)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5e0044558f1104cbbaefb759bd0d70c3a5049418","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T02:49:23-07:00","added":[".agents/skills/business-module-intake/SKILL.md","apps/api-fastify/src/modules/work/skills.service.ts","apps/api-fastify/src/routes/skills.ts","apps/api-nestjs/src/work/skills.controller.ts","apps/api-nestjs/src/work/skills.service.ts","apps/web/src/components/RoleAssignmentsPanel.tsx","apps/web/src/components/workbench/SkillPicker.tsx","packages/contracts/src/skill.test.ts","packages/contracts/src/skill.ts","reports/agent-adapters.latest.json","scripts/check-agent-adapters.mjs"],"removed":[],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/fullstack-7layer-react/SKILL.md","CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/errors.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/learning.concurrency.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/learning.concurrency.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/JobsPanel.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/StateBadge.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.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/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1248,"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-20T16:09:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1787219402
|
1787219846
|
0
|
1787219402
|
1787219847
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23856
|
feat(shijie): clarify four-stage workflow and pres feat(shijie): clarify four-stage workflow and preserve independent proposals...
|
57
|
5
|
governance.yml
|
206
|
5
|
0
|
refs/heads/main
|
a56a665ac50b247227ecfaa33f0ab61bb6bdad80
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4fe8d343cc6b00bed830031e666cc0ac14cc276e","after":"a56a665ac50b247227ecfaa33f0ab61bb6bdad80","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/4fe8d343cc6b00bed830031e666cc0ac14cc276e...a56a665ac50b247227ecfaa33f0ab61bb6bdad80","commits":[{"id":"a56a665ac50b247227ecfaa33f0ab61bb6bdad80","message":"feat(shijie): clarify four-stage workflow and preserve independent proposals\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a56a665ac50b247227ecfaa33f0ab61bb6bdad80","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-11T21:12:56-07:00","added":["docs/governance/log/2026-09-12-shijie-workflow.md","packages/shijie-domain/src/proposal-applicability.ts","reports/shijie-workflow-2026-09-12/ui.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/shijie/ShijieStudio.tsx","apps/web/src/components/material-factory/shijie/shijie.module.css","packages/contracts/src/shijie.ts","packages/shijie-domain/src/domain.test.ts","packages/shijie-domain/src/index.ts","packages/shijie-runtime/src/index.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-shijie-generation-ui.cjs"]}],"total_commits":0,"head_commit":{"id":"a56a665ac50b247227ecfaa33f0ab61bb6bdad80","message":"feat(shijie): clarify four-stage workflow and preserve independent proposals\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a56a665ac50b247227ecfaa33f0ab61bb6bdad80","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-11T21:12:56-07:00","added":["docs/governance/log/2026-09-12-shijie-workflow.md","packages/shijie-domain/src/proposal-applicability.ts","reports/shijie-workflow-2026-09-12/ui.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/shijie/ShijieStudio.tsx","apps/web/src/components/material-factory/shijie/shijie.module.css","packages/contracts/src/shijie.ts","packages/shijie-domain/src/domain.test.ts","packages/shijie-domain/src/index.ts","packages/shijie-runtime/src/index.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-shijie-generation-ui.cjs"]},"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":903753,"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":12,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-12T10:41:39+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
|
1789186396
|
1789186438
|
0
|
1789186394
|
1789186438
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23861
|
feat(shijie): add interactive camera console
|
57
|
5
|
governance.yml
|
211
|
5
|
0
|
refs/heads/main
|
45191102763430f55dbe4f5b55a176e3c177b784
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"501f06512e59d2cb2bde1f57b4c0dfbb409ce33e","after":"45191102763430f55dbe4f5b55a176e3c177b784","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/501f06512e59d2cb2bde1f57b4c0dfbb409ce33e...45191102763430f55dbe4f5b55a176e3c177b784","commits":[{"id":"45191102763430f55dbe4f5b55a176e3c177b784","message":"feat(shijie): add interactive camera console\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/45191102763430f55dbe4f5b55a176e3c177b784","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-11T22:39:52-07:00","added":["apps/web/src/components/material-factory/shijie/CameraConsole.tsx","docs/governance/log/2026-09-12-camera-console.md","reports/camera-console-2026-09-12/ui.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/shijie/ShijieStudio.tsx","apps/web/src/components/material-factory/shijie/shijie.module.css","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-shijie-generation-ui.cjs"]}],"total_commits":0,"head_commit":{"id":"45191102763430f55dbe4f5b55a176e3c177b784","message":"feat(shijie): add interactive camera console\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/45191102763430f55dbe4f5b55a176e3c177b784","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-11T22:39:52-07:00","added":["apps/web/src/components/material-factory/shijie/CameraConsole.tsx","docs/governance/log/2026-09-12-camera-console.md","reports/camera-console-2026-09-12/ui.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/shijie/ShijieStudio.tsx","apps/web/src/components/material-factory/shijie/shijie.module.css","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-shijie-generation-ui.cjs"]},"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":904105,"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":12,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-12T13:19:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789191614
|
1789191655
|
0
|
1789191614
|
1789191655
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25220
|
feat(setup): 调价建议按规则生成、开店配置界面、参考数据非破坏性引导
|
51
|
5
|
ci.yml
|
78
|
5
|
0
|
refs/heads/main
|
8dea76f88dbc1d25b9138740a700858621193fcf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cc720a3ed232225461ea8651defce0f7de17a7e8","after":"8dea76f88dbc1d25b9138740a700858621193fcf","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/cc720a3ed232225461ea8651defce0f7de17a7e8...8dea76f88dbc1d25b9138740a700858621193fcf","commits":[{"id":"8dea76f88dbc1d25b9138740a700858621193fcf","message":"feat(setup): 调价建议按规则生成、开店配置界面、参考数据非破坏性引导\n\n调价建议生成器(此前全仓没有任何代码创建 PricingSuggestion):\n- POST /pricing/suggestions/generate 按门店已开启的规则从本店数据生成:\n 竞品跟价(同价位带对标)、周末高峰、平峰折扣、节假日溢价;库存告急无数据来源不生成。\n- 规则建议不带销量 / 毛利预测(source=rule,verify / margin / conf 为 null);\n 数据不够不生成并在 skipped 里说明原因;同店并发只落一条,处理后 7 天内不重提。\n- 生成与采纳用同一套餐权益;同一套餐 24 小时内调价不超过 2 次由系统拦截,\n 其余护栏文案改为「需人工把关」。\n- 迁移 20261004072931:PricingSuggestion.source 列与取值约束。\n\n开店配置界面(真实接口模式;离线演示不变):\n- 产品定价:新建 / 编辑 / 下架套餐。\n- 门店资料:房台资源新增 / 编辑 / 设为维护 / 恢复可用;总部可改门店资料。\n- 门店连锁:总部新建门店,套餐不含连锁能力时显示后端原因。\n- 动态调价:按规则生成按钮,按来源标注建议。\n- 客户端把参数校验失败的具体字段带进提示。\n\n参考数据引导:\n- 节假日日历、内容模板、合规法规抽到 prisma/reference-data.ts,种子与引导共用。\n- npm run bootstrap:reference 只补缺、不删除、可重复、并发安全;\n 容器入口在迁移后默认执行。模板不再带编造的使用量;热点是样例,不进引导。\n\n验证:后端 99 文件 925 条、接口覆盖 252/254(基线 2 未变);前端整链通过;\n浏览器完整回归 256 通过 / 2 按设计跳过,含刚注册空商户的冷启动场景。\n规则见 docs/contracts/pricing-suggestion-rules.md,\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8dea76f88dbc1d25b9138740a700858621193fcf","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-04T01:23:02-07:00","added":["docs/contracts/pricing-suggestion-rules.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/prisma/bootstrap-reference.ts","server/prisma/migrations/20261004072931_pricing_suggestion_source/migration.sql","server/prisma/reference-data.ts","server/src/modules/pricing/generator.ts","server/test/r61-pricing-generator.test.ts","server/test/r62-reference-bootstrap.test.ts","团购本地生活AI运营App/scripts/test-setup-screens.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","server/docker-entrypoint.sh","server/package.json","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/middleware/entitlement.ts","server/src/modules/pricing/routes.ts","server/src/modules/pricing/service.ts","server/src/openapi.ts","server/test/r39-entitlement.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-static.mjs","开发计划.md"]}],"total_commits":0,"head_commit":{"id":"8dea76f88dbc1d25b9138740a700858621193fcf","message":"feat(setup): 调价建议按规则生成、开店配置界面、参考数据非破坏性引导\n\n调价建议生成器(此前全仓没有任何代码创建 PricingSuggestion):\n- POST /pricing/suggestions/generate 按门店已开启的规则从本店数据生成:\n 竞品跟价(同价位带对标)、周末高峰、平峰折扣、节假日溢价;库存告急无数据来源不生成。\n- 规则建议不带销量 / 毛利预测(source=rule,verify / margin / conf 为 null);\n 数据不够不生成并在 skipped 里说明原因;同店并发只落一条,处理后 7 天内不重提。\n- 生成与采纳用同一套餐权益;同一套餐 24 小时内调价不超过 2 次由系统拦截,\n 其余护栏文案改为「需人工把关」。\n- 迁移 20261004072931:PricingSuggestion.source 列与取值约束。\n\n开店配置界面(真实接口模式;离线演示不变):\n- 产品定价:新建 / 编辑 / 下架套餐。\n- 门店资料:房台资源新增 / 编辑 / 设为维护 / 恢复可用;总部可改门店资料。\n- 门店连锁:总部新建门店,套餐不含连锁能力时显示后端原因。\n- 动态调价:按规则生成按钮,按来源标注建议。\n- 客户端把参数校验失败的具体字段带进提示。\n\n参考数据引导:\n- 节假日日历、内容模板、合规法规抽到 prisma/reference-data.ts,种子与引导共用。\n- npm run bootstrap:reference 只补缺、不删除、可重复、并发安全;\n 容器入口在迁移后默认执行。模板不再带编造的使用量;热点是样例,不进引导。\n\n验证:后端 99 文件 925 条、接口覆盖 252/254(基线 2 未变);前端整链通过;\n浏览器完整回归 256 通过 / 2 按设计跳过,含刚注册空商户的冷启动场景。\n规则见 docs/contracts/pricing-suggestion-rules.md,\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8dea76f88dbc1d25b9138740a700858621193fcf","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-04T01:23:02-07:00","added":["docs/contracts/pricing-suggestion-rules.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/prisma/bootstrap-reference.ts","server/prisma/migrations/20261004072931_pricing_suggestion_source/migration.sql","server/prisma/reference-data.ts","server/src/modules/pricing/generator.ts","server/test/r61-pricing-generator.test.ts","server/test/r62-reference-bootstrap.test.ts","团购本地生活AI运营App/scripts/test-setup-screens.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","server/docker-entrypoint.sh","server/package.json","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/middleware/entitlement.ts","server/src/modules/pricing/routes.ts","server/src/modules/pricing/service.ts","server/src/openapi.ts","server/test/r39-entitlement.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-static.mjs","开发计划.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":92762,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T15:23:49+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1791125241
|
1791125332
|
0
|
1791117721
|
1791125332
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25221
|
feat(setup): 调价建议按规则生成、开店配置界面、参考数据非破坏性引导
|
51
|
5
|
e2e.yml
|
79
|
5
|
0
|
refs/heads/main
|
8dea76f88dbc1d25b9138740a700858621193fcf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cc720a3ed232225461ea8651defce0f7de17a7e8","after":"8dea76f88dbc1d25b9138740a700858621193fcf","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/cc720a3ed232225461ea8651defce0f7de17a7e8...8dea76f88dbc1d25b9138740a700858621193fcf","commits":[{"id":"8dea76f88dbc1d25b9138740a700858621193fcf","message":"feat(setup): 调价建议按规则生成、开店配置界面、参考数据非破坏性引导\n\n调价建议生成器(此前全仓没有任何代码创建 PricingSuggestion):\n- POST /pricing/suggestions/generate 按门店已开启的规则从本店数据生成:\n 竞品跟价(同价位带对标)、周末高峰、平峰折扣、节假日溢价;库存告急无数据来源不生成。\n- 规则建议不带销量 / 毛利预测(source=rule,verify / margin / conf 为 null);\n 数据不够不生成并在 skipped 里说明原因;同店并发只落一条,处理后 7 天内不重提。\n- 生成与采纳用同一套餐权益;同一套餐 24 小时内调价不超过 2 次由系统拦截,\n 其余护栏文案改为「需人工把关」。\n- 迁移 20261004072931:PricingSuggestion.source 列与取值约束。\n\n开店配置界面(真实接口模式;离线演示不变):\n- 产品定价:新建 / 编辑 / 下架套餐。\n- 门店资料:房台资源新增 / 编辑 / 设为维护 / 恢复可用;总部可改门店资料。\n- 门店连锁:总部新建门店,套餐不含连锁能力时显示后端原因。\n- 动态调价:按规则生成按钮,按来源标注建议。\n- 客户端把参数校验失败的具体字段带进提示。\n\n参考数据引导:\n- 节假日日历、内容模板、合规法规抽到 prisma/reference-data.ts,种子与引导共用。\n- npm run bootstrap:reference 只补缺、不删除、可重复、并发安全;\n 容器入口在迁移后默认执行。模板不再带编造的使用量;热点是样例,不进引导。\n\n验证:后端 99 文件 925 条、接口覆盖 252/254(基线 2 未变);前端整链通过;\n浏览器完整回归 256 通过 / 2 按设计跳过,含刚注册空商户的冷启动场景。\n规则见 docs/contracts/pricing-suggestion-rules.md,\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8dea76f88dbc1d25b9138740a700858621193fcf","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-04T01:23:02-07:00","added":["docs/contracts/pricing-suggestion-rules.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/prisma/bootstrap-reference.ts","server/prisma/migrations/20261004072931_pricing_suggestion_source/migration.sql","server/prisma/reference-data.ts","server/src/modules/pricing/generator.ts","server/test/r61-pricing-generator.test.ts","server/test/r62-reference-bootstrap.test.ts","团购本地生活AI运营App/scripts/test-setup-screens.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","server/docker-entrypoint.sh","server/package.json","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/middleware/entitlement.ts","server/src/modules/pricing/routes.ts","server/src/modules/pricing/service.ts","server/src/openapi.ts","server/test/r39-entitlement.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-static.mjs","开发计划.md"]}],"total_commits":0,"head_commit":{"id":"8dea76f88dbc1d25b9138740a700858621193fcf","message":"feat(setup): 调价建议按规则生成、开店配置界面、参考数据非破坏性引导\n\n调价建议生成器(此前全仓没有任何代码创建 PricingSuggestion):\n- POST /pricing/suggestions/generate 按门店已开启的规则从本店数据生成:\n 竞品跟价(同价位带对标)、周末高峰、平峰折扣、节假日溢价;库存告急无数据来源不生成。\n- 规则建议不带销量 / 毛利预测(source=rule,verify / margin / conf 为 null);\n 数据不够不生成并在 skipped 里说明原因;同店并发只落一条,处理后 7 天内不重提。\n- 生成与采纳用同一套餐权益;同一套餐 24 小时内调价不超过 2 次由系统拦截,\n 其余护栏文案改为「需人工把关」。\n- 迁移 20261004072931:PricingSuggestion.source 列与取值约束。\n\n开店配置界面(真实接口模式;离线演示不变):\n- 产品定价:新建 / 编辑 / 下架套餐。\n- 门店资料:房台资源新增 / 编辑 / 设为维护 / 恢复可用;总部可改门店资料。\n- 门店连锁:总部新建门店,套餐不含连锁能力时显示后端原因。\n- 动态调价:按规则生成按钮,按来源标注建议。\n- 客户端把参数校验失败的具体字段带进提示。\n\n参考数据引导:\n- 节假日日历、内容模板、合规法规抽到 prisma/reference-data.ts,种子与引导共用。\n- npm run bootstrap:reference 只补缺、不删除、可重复、并发安全;\n 容器入口在迁移后默认执行。模板不再带编造的使用量;热点是样例,不进引导。\n\n验证:后端 99 文件 925 条、接口覆盖 252/254(基线 2 未变);前端整链通过;\n浏览器完整回归 256 通过 / 2 按设计跳过,含刚注册空商户的冷启动场景。\n规则见 docs/contracts/pricing-suggestion-rules.md,\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8dea76f88dbc1d25b9138740a700858621193fcf","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-04T01:23:02-07:00","added":["docs/contracts/pricing-suggestion-rules.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/prisma/bootstrap-reference.ts","server/prisma/migrations/20261004072931_pricing_suggestion_source/migration.sql","server/prisma/reference-data.ts","server/src/modules/pricing/generator.ts","server/test/r61-pricing-generator.test.ts","server/test/r62-reference-bootstrap.test.ts","团购本地生活AI运营App/scripts/test-setup-screens.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","server/docker-entrypoint.sh","server/package.json","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/middleware/entitlement.ts","server/src/modules/pricing/routes.ts","server/src/modules/pricing/service.ts","server/src/openapi.ts","server/test/r39-entitlement.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-static.mjs","开发计划.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":92762,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T16:02:07+08:00","updated_at":"2026-10-04T15:23:49+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1791125332
|
1791125362
|
0
|
1791117721
|
1791125362
|
|
|
0
|
Edit
Delete
|
|
23959
|
feat(service): add notification delivery and devic feat(service): add notification delivery and device reference projection...
|
81
|
5
|
governance.yml
|
8
|
5
|
0
|
refs/heads/main
|
2085f1a31a52687344dd74911761be941a185b3c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"466e9752ba0f670d790b5134ff2d12e5b0e974ea","after":"2085f1a31a52687344dd74911761be941a185b3c","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/466e9752ba0f670d790b5134ff2d12e5b0e974ea...2085f1a31a52687344dd74911761be941a185b3c","commits":[{"id":"2085f1a31a52687344dd74911761be941a185b3c","message":"feat(service): add notification delivery and device reference projection\n\n- notification delivery: new service-operations delivery path with\n service_notification_intents migration and integration tests on both backends\n- device reference projection: consume device-cloud reference contract\n via new packages/contracts/src/device-cloud.ts and projection migration\n- publish juhai-service-os-product 0.3.0 and refresh product/manifest locks\n- extend check-dual-backend-parity gate; refresh reports evidence\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/2085f1a31a52687344dd74911761be941a185b3c","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-14T19:52:09-07:00","added":["apps/api-fastify/prisma/migrations/20260831120000_service_notification_intents/migration.sql","apps/api-fastify/prisma/migrations/20260901120000_device_reference_projection/migration.sql","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-fastify/test/notification-delivery.integration.test.ts","apps/api-nestjs/prisma/migrations/20260831120000_service_notification_intents/migration.sql","apps/api-nestjs/prisma/migrations/20260901120000_device_reference_projection/migration.sql","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","apps/api-nestjs/test/notification-delivery.integration.test.ts","artifacts/os-products/juhai-service-os-product-0.3.0.tgz","packages/contracts/src/device-cloud.test.ts","packages/contracts/src/device-cloud.ts","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/notification-delivery/README.md","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","scripts/lib/report-provenance.test.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/service-cases/service-cases.service.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/service-cases/service-cases.service.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/service-operations/service-operations.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/web/tsconfig.json","artifacts/os-products/juhai-service-os-product.lock.json","docs/domain/digital-employee-os-product-blueprint.md","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","docs/domain/service-operations-blueprint.md","docs/governance-experience.md","os-products/juhai.service/manifest.json","os-products/juhai.service/package.json","os-products/juhai.service/product.lock.json","package.json","packages/contracts/src/index.ts","packages/contracts/tsconfig.json","packages/service-contracts/src/service-case.ts","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/mobile-delivery.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-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"2085f1a31a52687344dd74911761be941a185b3c","message":"feat(service): add notification delivery and device reference projection\n\n- notification delivery: new service-operations delivery path with\n service_notification_intents migration and integration tests on both backends\n- device reference projection: consume device-cloud reference contract\n via new packages/contracts/src/device-cloud.ts and projection migration\n- publish juhai-service-os-product 0.3.0 and refresh product/manifest locks\n- extend check-dual-backend-parity gate; refresh reports evidence\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/2085f1a31a52687344dd74911761be941a185b3c","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-14T19:52:09-07:00","added":["apps/api-fastify/prisma/migrations/20260831120000_service_notification_intents/migration.sql","apps/api-fastify/prisma/migrations/20260901120000_device_reference_projection/migration.sql","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-fastify/test/notification-delivery.integration.test.ts","apps/api-nestjs/prisma/migrations/20260831120000_service_notification_intents/migration.sql","apps/api-nestjs/prisma/migrations/20260901120000_device_reference_projection/migration.sql","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","apps/api-nestjs/test/notification-delivery.integration.test.ts","artifacts/os-products/juhai-service-os-product-0.3.0.tgz","packages/contracts/src/device-cloud.test.ts","packages/contracts/src/device-cloud.ts","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/notification-delivery/README.md","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","scripts/lib/report-provenance.test.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/service-cases/service-cases.service.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/service-cases/service-cases.service.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/service-operations/service-operations.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/web/tsconfig.json","artifacts/os-products/juhai-service-os-product.lock.json","docs/domain/digital-employee-os-product-blueprint.md","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","docs/domain/service-operations-blueprint.md","docs/governance-experience.md","os-products/juhai.service/manifest.json","os-products/juhai.service/package.json","os-products/juhai.service/product.lock.json","package.json","packages/contracts/src/index.ts","packages/contracts/tsconfig.json","packages/service-contracts/src/service-case.ts","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/mobile-delivery.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-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.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":3041,"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-27T16:51: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
|
1789441171
|
1789441179
|
0
|
1789440859
|
1789441181
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23595
|
feat(scope): 新增作用域解析规划
|
106
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
a92f8b4ba943c410e739b5b60b1fea8e24f09c9e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","message":"feat(scope): 新增作用域解析规划\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/scope/scope-resolution.service.ts","docs/domain/scope-snapshot-blueprint.md","packages/contracts/src/scope-resolution-planner.test.ts","packages/contracts/src/scope-resolution-planner.ts","packages/contracts/src/scope-snapshot.test.ts","packages/contracts/src/scope-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03fe4ab65eed33a77d99c9785b0817cf7e15bf03","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/03fe4ab65eed33a77d99c9785b0817cf7e15bf03","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"d9b72b0c1d941ca1e6087644f706019eb80d9755","message":"feat: 平台身份重绑定 tenant-scope(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/d9b72b0c1d941ca1e6087644f706019eb80d9755","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["docs/framework-migration.md","products/juhai.tenantscope/README.md","products/juhai.tenantscope/acceptance/juhai.tenantscope.order.acceptance.mjs","products/juhai.tenantscope/migrations/juhai.tenantscope.order/20260826090000_create_orders.sql","products/juhai.tenantscope/migrations/juhai.tenantscope.order/20260826091000_create_order_events.sql","products/juhai.tenantscope/package.json","products/juhai.tenantscope/product.manifest.json","products/juhai.tenantscope/src/contracts.ts","products/juhai.tenantscope/src/fastify.ts","products/juhai.tenantscope/src/host.ts","products/juhai.tenantscope/src/index.ts","products/juhai.tenantscope/src/manifest.ts","products/juhai.tenantscope/src/nestjs.ts","products/juhai.tenantscope/src/order-repository.ts","products/juhai.tenantscope/src/tools.ts","products/juhai.tenantscope/src/web.tsx","products/juhai.tenantscope/test/os-host.runtime.test.ts","products/juhai.tenantscope/tsconfig.os-host.json","products/juhai.tenantscope/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"015f74509cb46fce6f34ae54ac33e9a5e7c5f86e","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/015f74509cb46fce6f34ae54ac33e9a5e7c5f86e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"eeee196b3c90ac39ac619cab997897d2e6a0c89e","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/eeee196b3c90ac39ac619cab997897d2e6a0c89e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:39-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","message":"feat(scope): 新增作用域解析规划\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/scope/scope-resolution.service.ts","docs/domain/scope-snapshot-blueprint.md","packages/contracts/src/scope-resolution-planner.test.ts","packages/contracts/src/scope-resolution-planner.ts","packages/contracts/src/scope-snapshot.test.ts","packages/contracts/src/scope-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":106,"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":"tenant-scope","full_name":"luoanwu/tenant-scope","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope/languages","html_url":"https://gitea.g-hi.com/luoanwu/tenant-scope","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/tenant-scope.git","clone_url":"https://gitea.g-hi.com/luoanwu/tenant-scope.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-01T21:58:13+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788278922
|
1788279840
|
0
|
1788271187
|
1788373230
|
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
|
|
24250
|
feat(runtime): wire database environments for all feat(runtime): wire database environments for all module profiles...
|
116
|
5
|
platform.yml
|
189
|
5
|
0
|
refs/heads/main
|
5344a74ea5b7c31eaf1729a1ae218fbdf635172b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0027742e94d18790b9d56227ffeaf1b2dc1e8d05","after":"5344a74ea5b7c31eaf1729a1ae218fbdf635172b","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/0027742e94d18790b9d56227ffeaf1b2dc1e8d05...5344a74ea5b7c31eaf1729a1ae218fbdf635172b","commits":[{"id":"5344a74ea5b7c31eaf1729a1ae218fbdf635172b","message":"feat(runtime): wire database environments for all module profiles\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/5344a74ea5b7c31eaf1729a1ae218fbdf635172b","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-19T15:43:35-07:00","added":[],"removed":[],"modified":["governance/test/module-databases.test.mjs","runtime/turbo.json","stack/compose.yaml"]}],"total_commits":0,"head_commit":{"id":"5344a74ea5b7c31eaf1729a1ae218fbdf635172b","message":"feat(runtime): wire database environments for all module profiles\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/5344a74ea5b7c31eaf1729a1ae218fbdf635172b","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-19T15:43:35-07:00","added":[],"removed":[],"modified":["governance/test/module-databases.test.mjs","runtime/turbo.json","stack/compose.yaml"]},"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":25029,"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":44,"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-20T01:41:06+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
|
30
|
1789857871
|
1789858940
|
0
|
1789857869
|
1789859011
|
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
|
|
23530
|
feat(runtime): freeze product evidence and validat feat(runtime): freeze product evidence and validate citations...
|
76
|
5
|
governance.yml
|
16
|
5
|
0
|
refs/heads/main
|
4a222fb5f11f2640e5e3d214e856b703128ee62c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3cea10da5556cec346fbdecf5255ad38fc2bb92a","after":"4a222fb5f11f2640e5e3d214e856b703128ee62c","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/3cea10da5556cec346fbdecf5255ad38fc2bb92a...4a222fb5f11f2640e5e3d214e856b703128ee62c","commits":[{"id":"4a222fb5f11f2640e5e3d214e856b703128ee62c","message":"feat(runtime): freeze product evidence and validate citations\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/4a222fb5f11f2640e5e3d214e856b703128ee62c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:39:37-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/rag.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/llm-governance/rag.service.ts","apps/api-nestjs/src/product-extensions.module.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/test/llm.acceptance.test.ts","packages/contracts/src/llm-governance.test.ts","packages/contracts/src/llm-governance.ts","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts","reports/kernel-extensions.latest.json"]}],"total_commits":0,"head_commit":{"id":"4a222fb5f11f2640e5e3d214e856b703128ee62c","message":"feat(runtime): freeze product evidence and validate citations\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/4a222fb5f11f2640e5e3d214e856b703128ee62c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:39:37-07:00","added":[],"removed":[],"modified":["apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/rag.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/llm-governance/rag.service.ts","apps/api-nestjs/src/product-extensions.module.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/test/llm.acceptance.test.ts","packages/contracts/src/llm-governance.test.ts","packages/contracts/src/llm-governance.ts","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts","reports/kernel-extensions.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":74168,"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-26T09:18:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
64
|
1787708917
|
1787712441
|
0
|
1787708829
|
1787712441
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24042
|
feat(runtime): WB-1 工作台脚手架——runtime/apps/workbench feat(runtime): WB-1 工作台脚手架——runtime/apps/workbench 纯静态 SPA 与四页只读面...
|
116
|
5
|
platform.yml
|
95
|
5
|
0
|
refs/heads/main
|
460cfe907dba69936a3bec815b177f2f96ba8790
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"361a0e418fa5c6c648f95625c7829a0c46a76cde","after":"460cfe907dba69936a3bec815b177f2f96ba8790","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/361a0e418fa5c6c648f95625c7829a0c46a76cde...460cfe907dba69936a3bec815b177f2f96ba8790","commits":[{"id":"460cfe907dba69936a3bec815b177f2f96ba8790","message":"feat(runtime): WB-1 工作台脚手架——runtime/apps/workbench 纯静态 SPA 与四页只读面\n\n按 CHG-018 §5.1 已裁技术栈建独立应用:Next.js output=export + React + TypeScript,\n无 SSR / API routes / middleware,产物 out/ 由 Caddy 托管(入口鉴权与部署注入属 SRE,未做)。\n\n- 四页:总览(运行时装配事实)、服务目录(构建期快照)、只读运行信息(模块与 health 探针)、登录(OIDC 公开客户端 Authorization Code + PKCE,带 state / nonce,令牌只入 sessionStorage 且只走 Authorization 头)\n- StateBlock 把缺接口 / 缺凭证 / 缺权限 / 依赖故障 / 响应不可解析 / 空数据分别成状态显示,不以模拟数据或空成功掩盖(§5.2)\n- 不静态 import 任何 @juhai/module-*,只经公开 HTTP 只读面取数;catalog / modules 响应形状在 features/platform/types.ts 作浏览器侧镜像并注明真源文件\n- 目录快照经 scripts/copy-snapshots.mjs 于构建期复制为静态资产;缺快照时页面显示「未随构建附带」而非空目录\n- 环境列固定 unknown、装载成功不渲染为健康、空 health 明示不等于业务健康\n- check:fork-readiness 的 F7 / F9 忽略表补 out(静态导出产物,与 dist / .next 同类)——本仓首个静态导出应用暴露的缺口\n\n本机验收(dev 服务 :3010,API 指向容器 127.0.0.1:53001):服务目录页渲染真实快照 21 条目、\n快照来源显示绑定 6378b6f;总览与运行信息页因跨源被拦,如实显示依赖故障;登录页显示缺配置。\nruntime 静态门禁 31 项通过(含 workbench typecheck / lint);check:naming、check:module-imports、\ncheck:fork-readiness 通过。目标环境验收未做:运行容器源码为 19150ae,早于目录读面与 OPS-1,\n/api/platform/catalog 与 /api/platform/ops/definitions 实测 404。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/460cfe907dba69936a3bec815b177f2f96ba8790","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-17T16:14:34-07:00","added":["runtime/apps/workbench/.env.example","runtime/apps/workbench/.gitignore","runtime/apps/workbench/eslint.config.mjs","runtime/apps/workbench/next.config.ts","runtime/apps/workbench/package.json","runtime/apps/workbench/postcss.config.js","runtime/apps/workbench/public/snapshots/.gitkeep","runtime/apps/workbench/scripts/copy-snapshots.mjs","runtime/apps/workbench/src/app/callback/page.tsx","runtime/apps/workbench/src/app/catalog/page.tsx","runtime/apps/workbench/src/app/globals.css","runtime/apps/workbench/src/app/layout.tsx","runtime/apps/workbench/src/app/login/page.tsx","runtime/apps/workbench/src/app/page.tsx","runtime/apps/workbench/src/app/runtime/page.tsx","runtime/apps/workbench/src/components/app-nav.tsx","runtime/apps/workbench/src/components/state-block.tsx","runtime/apps/workbench/src/components/ui/badge.tsx","runtime/apps/workbench/src/components/ui/card.tsx","runtime/apps/workbench/src/features/auth/api.ts","runtime/apps/workbench/src/features/auth/config.ts","runtime/apps/workbench/src/features/auth/pkce.ts","runtime/apps/workbench/src/features/auth/store.ts","runtime/apps/workbench/src/features/platform/api.ts","runtime/apps/workbench/src/features/platform/hooks.ts","runtime/apps/workbench/src/features/platform/types.ts","runtime/apps/workbench/src/lib/providers.tsx","runtime/apps/workbench/src/lib/utils.ts","runtime/apps/workbench/tailwind.config.ts","runtime/apps/workbench/tsconfig.json","runtime/apps/workbench/turbo.json"],"removed":[],"modified":["runtime/pnpm-lock.yaml","runtime/scripts/check-fork-readiness.mjs"]},{"id":"41ca98813d6661f799d6cd4f8674fbc265a5cf6c","message":"docs(runtime): PF-03 ⑤ 回灌——GOVERNANCE-BASELINE 表与发布快照不再冒充框架仓事实\n\n偏差 #11:runtime/CLAUDE.md 的动态区「证据新鲜度」已回灌为本仓事实(652 /\n7e26a50 / 2026-09-13),其下的 GOVERNANCE-BASELINE 表却仍写着框架仓的\n288 tests @ 17b8276 与 4 组合 UI,同一文件里两份真源打架——而该文件自己\n规定「判定治理状态只认动态区 + reports」。\n\n四行按 runtime-acceptance / ui-acceptance 两份报告回灌:\n\n- runtime-acceptance:288 @ 17b8276 → 652 @ 7e26a50,证据描述改本仓底座\n (PG :55471 / Redis :56380/7 / Redpanda :59093 + platform_identity_test)\n- tests-passing:288 → 652,地板改指 reports/baseline.json\n- tenant-rls:clean SHA 17b8276 → 7e26a50,去掉框架的「两后端各 6 例」\n- ui-acceptance:4 组合 × 11 用例 → 1 组合(nestjs × ws)5 用例,地板 11 → 5\n\n「发布状态快照」一段描述的是框架仓 base-framework 的两个远端与 CI run,\n随 scaffold 带入本仓,在此读起来像本仓状态:加归属标注并指向开发计划 §1\n仓与远端行,保留原文作版本轴溯源,不删。\n\ncheck:docs-truth 通过(动态区两行 SHA 断言未受影响)、check:governance-docs\n通过(AGENTS.md 符号链接一致)。\n\n报告未回绑:工作区有并行会话在途的 pnpm-lock / check-fork-readiness /\napps/workbench,拿不到干净树。作用域内四份报告(docs-truth、governance-docs、\nagent-adapters、dual-backend-parity,均 warn 级)待干净树的 chore(reports)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/41ca98813d6661f799d6cd4f8674fbc265a5cf6c","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-17T16:14:02-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"460cfe907dba69936a3bec815b177f2f96ba8790","message":"feat(runtime): WB-1 工作台脚手架——runtime/apps/workbench 纯静态 SPA 与四页只读面\n\n按 CHG-018 §5.1 已裁技术栈建独立应用:Next.js output=export + React + TypeScript,\n无 SSR / API routes / middleware,产物 out/ 由 Caddy 托管(入口鉴权与部署注入属 SRE,未做)。\n\n- 四页:总览(运行时装配事实)、服务目录(构建期快照)、只读运行信息(模块与 health 探针)、登录(OIDC 公开客户端 Authorization Code + PKCE,带 state / nonce,令牌只入 sessionStorage 且只走 Authorization 头)\n- StateBlock 把缺接口 / 缺凭证 / 缺权限 / 依赖故障 / 响应不可解析 / 空数据分别成状态显示,不以模拟数据或空成功掩盖(§5.2)\n- 不静态 import 任何 @juhai/module-*,只经公开 HTTP 只读面取数;catalog / modules 响应形状在 features/platform/types.ts 作浏览器侧镜像并注明真源文件\n- 目录快照经 scripts/copy-snapshots.mjs 于构建期复制为静态资产;缺快照时页面显示「未随构建附带」而非空目录\n- 环境列固定 unknown、装载成功不渲染为健康、空 health 明示不等于业务健康\n- check:fork-readiness 的 F7 / F9 忽略表补 out(静态导出产物,与 dist / .next 同类)——本仓首个静态导出应用暴露的缺口\n\n本机验收(dev 服务 :3010,API 指向容器 127.0.0.1:53001):服务目录页渲染真实快照 21 条目、\n快照来源显示绑定 6378b6f;总览与运行信息页因跨源被拦,如实显示依赖故障;登录页显示缺配置。\nruntime 静态门禁 31 项通过(含 workbench typecheck / lint);check:naming、check:module-imports、\ncheck:fork-readiness 通过。目标环境验收未做:运行容器源码为 19150ae,早于目录读面与 OPS-1,\n/api/platform/catalog 与 /api/platform/ops/definitions 实测 404。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/460cfe907dba69936a3bec815b177f2f96ba8790","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-17T16:14:34-07:00","added":["runtime/apps/workbench/.env.example","runtime/apps/workbench/.gitignore","runtime/apps/workbench/eslint.config.mjs","runtime/apps/workbench/next.config.ts","runtime/apps/workbench/package.json","runtime/apps/workbench/postcss.config.js","runtime/apps/workbench/public/snapshots/.gitkeep","runtime/apps/workbench/scripts/copy-snapshots.mjs","runtime/apps/workbench/src/app/callback/page.tsx","runtime/apps/workbench/src/app/catalog/page.tsx","runtime/apps/workbench/src/app/globals.css","runtime/apps/workbench/src/app/layout.tsx","runtime/apps/workbench/src/app/login/page.tsx","runtime/apps/workbench/src/app/page.tsx","runtime/apps/workbench/src/app/runtime/page.tsx","runtime/apps/workbench/src/components/app-nav.tsx","runtime/apps/workbench/src/components/state-block.tsx","runtime/apps/workbench/src/components/ui/badge.tsx","runtime/apps/workbench/src/components/ui/card.tsx","runtime/apps/workbench/src/features/auth/api.ts","runtime/apps/workbench/src/features/auth/config.ts","runtime/apps/workbench/src/features/auth/pkce.ts","runtime/apps/workbench/src/features/auth/store.ts","runtime/apps/workbench/src/features/platform/api.ts","runtime/apps/workbench/src/features/platform/hooks.ts","runtime/apps/workbench/src/features/platform/types.ts","runtime/apps/workbench/src/lib/providers.tsx","runtime/apps/workbench/src/lib/utils.ts","runtime/apps/workbench/tailwind.config.ts","runtime/apps/workbench/tsconfig.json","runtime/apps/workbench/turbo.json"],"removed":[],"modified":["runtime/pnpm-lock.yaml","runtime/scripts/check-fork-readiness.mjs"]},"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":16789,"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":42,"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-18T07:01: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
|
3
|
10
|
0
|
1789686947
|
0
|
1789686902
|
1789686947
|
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
|
|
23593
|
feat(registry): 新增清单准入规划
|
102
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
84ddb30d145311a96f500560acdcf6b3b7d6a910
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"84ddb30d145311a96f500560acdcf6b3b7d6a910","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"84ddb30d145311a96f500560acdcf6b3b7d6a910","message":"feat(registry): 新增清单准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/84ddb30d145311a96f500560acdcf6b3b7d6a910","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/registry/manifest-admission.service.ts","docs/domain/registry-snapshot-blueprint.md","packages/contracts/src/manifest-admission-planner.test.ts","packages/contracts/src/manifest-admission-planner.ts","packages/contracts/src/registry-snapshot.test.ts","packages/contracts/src/registry-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"4b7fa15f1cb4502edae19204a2fea5645dc09301","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/4b7fa15f1cb4502edae19204a2fea5645dc09301","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"18b7855652a9da5c316d17740ca79db956231232","message":"feat: 平台身份重绑定 app-registry(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/18b7855652a9da5c316d17740ca79db956231232","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:16-07:00","added":["docs/framework-migration.md","products/juhai.appregistry/README.md","products/juhai.appregistry/acceptance/juhai.appregistry.order.acceptance.mjs","products/juhai.appregistry/migrations/juhai.appregistry.order/20260826090000_create_orders.sql","products/juhai.appregistry/migrations/juhai.appregistry.order/20260826091000_create_order_events.sql","products/juhai.appregistry/package.json","products/juhai.appregistry/product.manifest.json","products/juhai.appregistry/src/contracts.ts","products/juhai.appregistry/src/fastify.ts","products/juhai.appregistry/src/host.ts","products/juhai.appregistry/src/index.ts","products/juhai.appregistry/src/manifest.ts","products/juhai.appregistry/src/nestjs.ts","products/juhai.appregistry/src/order-repository.ts","products/juhai.appregistry/src/tools.ts","products/juhai.appregistry/src/web.tsx","products/juhai.appregistry/test/os-host.runtime.test.ts","products/juhai.appregistry/tsconfig.os-host.json","products/juhai.appregistry/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"53dce4a57c8dda8e9bd74a22b3fb1557a45494c1","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/53dce4a57c8dda8e9bd74a22b3fb1557a45494c1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f3d8def24403f71854453326335ea4f5f3fba94d","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/f3d8def24403f71854453326335ea4f5f3fba94d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"84ddb30d145311a96f500560acdcf6b3b7d6a910","message":"feat(registry): 新增清单准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/84ddb30d145311a96f500560acdcf6b3b7d6a910","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/registry/manifest-admission.service.ts","docs/domain/registry-snapshot-blueprint.md","packages/contracts/src/manifest-admission-planner.test.ts","packages/contracts/src/manifest-admission-planner.ts","packages/contracts/src/registry-snapshot.test.ts","packages/contracts/src/registry-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":102,"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":"app-registry","full_name":"luoanwu/app-registry","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-registry/languages","html_url":"https://gitea.g-hi.com/luoanwu/app-registry","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-registry","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/app-registry.git","clone_url":"https://gitea.g-hi.com/luoanwu/app-registry.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-01T21:58:05+08:00","updated_at":"2026-09-01T21:59:45+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788278762
|
1788279540
|
0
|
1788271185
|
1788373230
|
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
|
|
23958
|
feat(quotation): 接入公共文件平台并补齐 outbox 重放与通知投递
|
72
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"125c54d328d3da221b5d91c0a2dd0475712c6e96","after":"ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/125c54d328d3da221b5d91c0a2dd0475712c6e96...ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","commits":[{"id":"ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","message":"feat(quotation): 接入公共文件平台并补齐 outbox 重放与通知投递\n\n- 新增 packages/public-file,对象存储改走公共文件平台契约,\n 两端 object-storage 与 files 路由同步重构\n- 新增 outbox-operations 模块与路由,配套 outbox_replay_operations 迁移,\n 支持事件重放运维操作\n- 新增 notification-delivery 模块与 packages/notification-delivery,\n 配套 quotation_notification_delivery 迁移\n- packages/contracts 补 notification / outbox-operations 契约与测试\n- 刷新 reports 证据\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","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-14T19:52:39-07:00","added":["apps/api-fastify/prisma/migrations/20260831230000_outbox_replay_operations/migration.sql","apps/api-fastify/prisma/migrations/20260901120000_quotation_notification_delivery/migration.sql","apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-fastify/src/modules/outbox-operations/outbox-operations.service.ts","apps/api-fastify/src/routes/notification-delivery.ts","apps/api-fastify/src/routes/outbox-operations.ts","apps/api-fastify/test/notification-delivery.integration.test.ts","apps/api-fastify/test/outbox-operations.http.test.ts","apps/api-nestjs/prisma/migrations/20260831230000_outbox_replay_operations/migration.sql","apps/api-nestjs/prisma/migrations/20260901120000_quotation_notification_delivery/migration.sql","apps/api-nestjs/src/events/notification-delivery.controller.ts","apps/api-nestjs/src/events/notification-delivery.service.ts","apps/api-nestjs/src/events/outbox-operations.controller.ts","apps/api-nestjs/src/events/outbox-operations.service.ts","apps/api-nestjs/test/notification-delivery.integration.test.ts","apps/api-nestjs/test/outbox-operations.http.test.ts","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/contracts/src/outbox-operations.test.ts","packages/contracts/src/outbox-operations.ts","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","packages/public-file/README.md","packages/public-file/package.json","packages/public-file/src/index.test.ts","packages/public-file/src/index.ts","packages/public-file/src/infrastructure.integration.test.ts","packages/public-file/src/ref.test.ts","packages/public-file/src/ref.ts","packages/public-file/tsconfig.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/modules/storage/object-storage.ts","apps/api-fastify/src/routes/files.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/src/storage/files.controller.ts","apps/api-nestjs/src/storage/object-storage.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/login/page.tsx","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/enterprise-platform-architecture.md","docs/governance-experience.md","docs/module-test-matrix.md","docs/product-prd.md","docs/spatiotemporal-fact-model.md","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/storage.test.ts","packages/contracts/src/storage.ts","packages/contracts/src/user.ts","pnpm-lock.yaml","reports/api-route-contract.latest.json","reports/approval-payload-contract.latest.json","reports/baseline.json","reports/component-size.latest.json","reports/contract-consumers.latest.json","reports/design-tokens.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/queue-isolation.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/sites-governance.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json","reports/workspace-hygiene.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-module-integration.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/check-vm-deploy.mjs","scripts/lib/backend-parity-diff.mjs","scripts/lib/contract-integration.test.mjs","scripts/vm-deploy.sh","turbo.json"]}],"total_commits":0,"head_commit":{"id":"ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","message":"feat(quotation): 接入公共文件平台并补齐 outbox 重放与通知投递\n\n- 新增 packages/public-file,对象存储改走公共文件平台契约,\n 两端 object-storage 与 files 路由同步重构\n- 新增 outbox-operations 模块与路由,配套 outbox_replay_operations 迁移,\n 支持事件重放运维操作\n- 新增 notification-delivery 模块与 packages/notification-delivery,\n 配套 quotation_notification_delivery 迁移\n- packages/contracts 补 notification / outbox-operations 契约与测试\n- 刷新 reports 证据\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/ec9e07de44a5619a8a6b5648f00f5ea7f7dcafcf","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-14T19:52:39-07:00","added":["apps/api-fastify/prisma/migrations/20260831230000_outbox_replay_operations/migration.sql","apps/api-fastify/prisma/migrations/20260901120000_quotation_notification_delivery/migration.sql","apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-fastify/src/modules/outbox-operations/outbox-operations.service.ts","apps/api-fastify/src/routes/notification-delivery.ts","apps/api-fastify/src/routes/outbox-operations.ts","apps/api-fastify/test/notification-delivery.integration.test.ts","apps/api-fastify/test/outbox-operations.http.test.ts","apps/api-nestjs/prisma/migrations/20260831230000_outbox_replay_operations/migration.sql","apps/api-nestjs/prisma/migrations/20260901120000_quotation_notification_delivery/migration.sql","apps/api-nestjs/src/events/notification-delivery.controller.ts","apps/api-nestjs/src/events/notification-delivery.service.ts","apps/api-nestjs/src/events/outbox-operations.controller.ts","apps/api-nestjs/src/events/outbox-operations.service.ts","apps/api-nestjs/test/notification-delivery.integration.test.ts","apps/api-nestjs/test/outbox-operations.http.test.ts","packages/contracts/src/notification.test.ts","packages/contracts/src/notification.ts","packages/contracts/src/outbox-operations.test.ts","packages/contracts/src/outbox-operations.ts","packages/notification-delivery/package.json","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts","packages/notification-delivery/tsconfig.json","packages/public-file/README.md","packages/public-file/package.json","packages/public-file/src/index.test.ts","packages/public-file/src/index.ts","packages/public-file/src/infrastructure.integration.test.ts","packages/public-file/src/ref.test.ts","packages/public-file/src/ref.ts","packages/public-file/tsconfig.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/modules/storage/object-storage.ts","apps/api-fastify/src/routes/files.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/src/storage/files.controller.ts","apps/api-nestjs/src/storage/object-storage.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/login/page.tsx","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/enterprise-platform-architecture.md","docs/governance-experience.md","docs/module-test-matrix.md","docs/product-prd.md","docs/spatiotemporal-fact-model.md","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/storage.test.ts","packages/contracts/src/storage.ts","packages/contracts/src/user.ts","pnpm-lock.yaml","reports/api-route-contract.latest.json","reports/approval-payload-contract.latest.json","reports/baseline.json","reports/component-size.latest.json","reports/contract-consumers.latest.json","reports/design-tokens.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/queue-isolation.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/sites-governance.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json","reports/workspace-hygiene.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-module-integration.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/check-vm-deploy.mjs","scripts/lib/backend-parity-diff.mjs","scripts/lib/contract-integration.test.mjs","scripts/vm-deploy.sh","turbo.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":35127,"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":1,"watchers_count":1,"branch_count":11,"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-08-26T13:51: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
|
8
|
1789440998
|
1789441317
|
0
|
1789440856
|
1789441317
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23589
|
feat(public-file): 新增文件访问规划
|
100
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
2387e931f0ea23c2d6e540ae2a62fe923e35f5d6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","message":"feat(public-file): 新增文件访问规划\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/public-file/public-file-access.service.ts","docs/domain/public-file-ref-blueprint.md","packages/contracts/src/public-file-access-planner.test.ts","packages/contracts/src/public-file-access-planner.ts","packages/contracts/src/public-file-ref.test.ts","packages/contracts/src/public-file-ref.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"c5da8254acbbc8775def2fe45e59dbe5fe3531be","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/c5da8254acbbc8775def2fe45e59dbe5fe3531be","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"13dd323e6269c9aaa3f1ba7fd1b40e04f867b23b","message":"feat: 平台身份重绑定 file-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/13dd323e6269c9aaa3f1ba7fd1b40e04f867b23b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["docs/framework-migration.md","products/juhai.file/README.md","products/juhai.file/acceptance/juhai.file.order.acceptance.mjs","products/juhai.file/migrations/juhai.file.order/20260826090000_create_orders.sql","products/juhai.file/migrations/juhai.file.order/20260826091000_create_order_events.sql","products/juhai.file/package.json","products/juhai.file/product.manifest.json","products/juhai.file/src/contracts.ts","products/juhai.file/src/fastify.ts","products/juhai.file/src/host.ts","products/juhai.file/src/index.ts","products/juhai.file/src/manifest.ts","products/juhai.file/src/nestjs.ts","products/juhai.file/src/order-repository.ts","products/juhai.file/src/tools.ts","products/juhai.file/src/web.tsx","products/juhai.file/test/os-host.runtime.test.ts","products/juhai.file/tsconfig.os-host.json","products/juhai.file/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"c0acd82b726e9023cd0235d4986b063cf9c57d36","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/c0acd82b726e9023cd0235d4986b063cf9c57d36","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"437046945042b060fbafaa33cf8bc68844349036","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/437046945042b060fbafaa33cf8bc68844349036","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:46-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","message":"feat(public-file): 新增文件访问规划\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/public-file/public-file-access.service.ts","docs/domain/public-file-ref-blueprint.md","packages/contracts/src/public-file-access-planner.test.ts","packages/contracts/src/public-file-access-planner.ts","packages/contracts/src/public-file-ref.test.ts","packages/contracts/src/public-file-ref.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":100,"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":"file-platform","full_name":"luoanwu/file-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/file-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/file-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/file-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/file-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/file-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-01T21:58:01+08:00","updated_at":"2026-09-01T21:59: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
|
3
|
6
|
1788271408
|
1788278640
|
0
|
1788271184
|
1788373230
|
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
|
|
23686
|
feat(production): add audited delivery revocation feat(production): add audited delivery revocation and bounded entity feeds...
|
57
|
5
|
governance.yml
|
57
|
5
|
0
|
refs/heads/main
|
4bd818ff3707544c3cab263ef0f8e78fbb2bbed4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8bfdc08eb824fb14e855dcd688d061e7f645a8a9","after":"4bd818ff3707544c3cab263ef0f8e78fbb2bbed4","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/8bfdc08eb824fb14e855dcd688d061e7f645a8a9...4bd818ff3707544c3cab263ef0f8e78fbb2bbed4","commits":[{"id":"4bd818ff3707544c3cab263ef0f8e78fbb2bbed4","message":"feat(production): add audited delivery revocation and bounded entity feeds\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4bd818ff3707544c3cab263ef0f8e78fbb2bbed4","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T07:03:40-07:00","added":["apps/api-fastify/src/modules/material-production/production-page.ts","apps/api-fastify/test/production-pagination.integration.test.ts","apps/api-nestjs/src/material-production/production-page.ts","apps/api-nestjs/test/production-pagination.integration.test.ts","apps/web/src/components/material-factory/ProductionPagination.tsx","apps/web/src/components/material-factory/RevokeDelivery.tsx","docs/governance/log/2026-09-08-production-access-pagination.md","scripts/lib/production-pagination-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/material-production/material-production.service.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/production-adversarial-http.integration.test.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/test/production-adversarial-http.integration.test.ts","apps/web/src/components/material-factory/ActivityLog.tsx","apps/web/src/components/material-factory/DeliveryCenter.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/ReviewCenter.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/WorkspaceHome.tsx","apps/web/src/components/material-factory/queries.ts","apps/web/src/lib/api.ts","docs/browser-enterprise-login.md","packages/contracts/src/production.ts","packages/enterprise-identity/src/browser-session.test.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/lib/production-review-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"4bd818ff3707544c3cab263ef0f8e78fbb2bbed4","message":"feat(production): add audited delivery revocation and bounded entity feeds\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4bd818ff3707544c3cab263ef0f8e78fbb2bbed4","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T07:03:40-07:00","added":["apps/api-fastify/src/modules/material-production/production-page.ts","apps/api-fastify/test/production-pagination.integration.test.ts","apps/api-nestjs/src/material-production/production-page.ts","apps/api-nestjs/test/production-pagination.integration.test.ts","apps/web/src/components/material-factory/ProductionPagination.tsx","apps/web/src/components/material-factory/RevokeDelivery.tsx","docs/governance/log/2026-09-08-production-access-pagination.md","scripts/lib/production-pagination-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/material-production/material-production.service.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/production-adversarial-http.integration.test.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/test/production-adversarial-http.integration.test.ts","apps/web/src/components/material-factory/ActivityLog.tsx","apps/web/src/components/material-factory/DeliveryCenter.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/ReviewCenter.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/WorkspaceHome.tsx","apps/web/src/components/material-factory/queries.ts","apps/web/src/lib/api.ts","docs/browser-enterprise-login.md","packages/contracts/src/production.ts","packages/enterprise-identity/src/browser-session.test.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/lib/production-review-ui-acceptance.mjs"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":636455,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-08T21:08: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
|
4
|
1788876262
|
1788876352
|
0
|
1788876261
|
1788876352
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24385
|
feat(product): upgrade juhai hr to 0.19.2
|
76
|
5
|
governance.yml
|
120
|
5
|
0
|
refs/heads/main
|
36fa967e51ba51623084fcf5a1a864bc6d313182
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1","after":"36fa967e51ba51623084fcf5a1a864bc6d313182","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1...36fa967e51ba51623084fcf5a1a864bc6d313182","commits":[{"id":"36fa967e51ba51623084fcf5a1a864bc6d313182","message":"feat(product): upgrade juhai hr to 0.19.2\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/36fa967e51ba51623084fcf5a1a864bc6d313182","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-23T03:57:58-07:00","added":["products/juhai.hr/acceptance/agent-tools.contract.test.mjs","products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","products/juhai.hr/src/delivery-audit-workbench.d.mts","products/juhai.hr/src/delivery-audit-workbench.mjs","products/juhai.hr/src/master-data-workbench.mjs","products/juhai.hr/src/personnel-change-workbench.d.mts","products/juhai.hr/src/personnel-change-workbench.mjs","products/juhai.hr/src/personnel-governance-workbench.d.mts","products/juhai.hr/src/personnel-governance-workbench.mjs","products/juhai.hr/src/privacy-projections.mjs","products/juhai.hr/src/transfer-service.d.mts"],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/distribution.json","products/juhai.hr/manifest.json","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-policy.d.mts","products/juhai.hr/src/personnel-change-policy.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/transfer-service.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]}],"total_commits":0,"head_commit":{"id":"36fa967e51ba51623084fcf5a1a864bc6d313182","message":"feat(product): upgrade juhai hr to 0.19.2\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/36fa967e51ba51623084fcf5a1a864bc6d313182","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-23T03:57:58-07:00","added":["products/juhai.hr/acceptance/agent-tools.contract.test.mjs","products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","products/juhai.hr/src/delivery-audit-workbench.d.mts","products/juhai.hr/src/delivery-audit-workbench.mjs","products/juhai.hr/src/master-data-workbench.mjs","products/juhai.hr/src/personnel-change-workbench.d.mts","products/juhai.hr/src/personnel-change-workbench.mjs","products/juhai.hr/src/personnel-governance-workbench.d.mts","products/juhai.hr/src/personnel-governance-workbench.mjs","products/juhai.hr/src/privacy-projections.mjs","products/juhai.hr/src/transfer-service.d.mts"],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/distribution.json","products/juhai.hr/manifest.json","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-policy.d.mts","products/juhai.hr/src/personnel-change-policy.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/transfer-service.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.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":95423,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-23T18:22:36+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1790161091
|
1790161181
|
0
|
1790161089
|
1790162302
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24386
|
feat(product): upgrade juhai hr to 0.19.2
|
76
|
5
|
platform-governance.yml
|
121
|
5
|
0
|
refs/heads/main
|
36fa967e51ba51623084fcf5a1a864bc6d313182
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1","after":"36fa967e51ba51623084fcf5a1a864bc6d313182","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/5523aac7fef0c6a05d69f5eebc0fd6cc65c171b1...36fa967e51ba51623084fcf5a1a864bc6d313182","commits":[{"id":"36fa967e51ba51623084fcf5a1a864bc6d313182","message":"feat(product): upgrade juhai hr to 0.19.2\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/36fa967e51ba51623084fcf5a1a864bc6d313182","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-23T03:57:58-07:00","added":["products/juhai.hr/acceptance/agent-tools.contract.test.mjs","products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","products/juhai.hr/src/delivery-audit-workbench.d.mts","products/juhai.hr/src/delivery-audit-workbench.mjs","products/juhai.hr/src/master-data-workbench.mjs","products/juhai.hr/src/personnel-change-workbench.d.mts","products/juhai.hr/src/personnel-change-workbench.mjs","products/juhai.hr/src/personnel-governance-workbench.d.mts","products/juhai.hr/src/personnel-governance-workbench.mjs","products/juhai.hr/src/privacy-projections.mjs","products/juhai.hr/src/transfer-service.d.mts"],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/distribution.json","products/juhai.hr/manifest.json","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-policy.d.mts","products/juhai.hr/src/personnel-change-policy.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/transfer-service.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json"]}],"total_commits":0,"head_commit":{"id":"36fa967e51ba51623084fcf5a1a864bc6d313182","message":"feat(product): upgrade juhai hr to 0.19.2\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/36fa967e51ba51623084fcf5a1a864bc6d313182","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-23T03:57:58-07:00","added":["products/juhai.hr/acceptance/agent-tools.contract.test.mjs","products/juhai.hr/migrations/juhai.hr.personnel-core/20260828010000_assignment_lineage_indexes.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830120000_employment_canonical_fact_intents.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830130000_enterprise_fact_relay_recovery.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260830140000_enterprise_fact_relay_tenant_id_compat.sql","products/juhai.hr/src/delivery-audit-workbench.d.mts","products/juhai.hr/src/delivery-audit-workbench.mjs","products/juhai.hr/src/master-data-workbench.mjs","products/juhai.hr/src/personnel-change-workbench.d.mts","products/juhai.hr/src/personnel-change-workbench.mjs","products/juhai.hr/src/personnel-governance-workbench.d.mts","products/juhai.hr/src/personnel-governance-workbench.mjs","products/juhai.hr/src/privacy-projections.mjs","products/juhai.hr/src/transfer-service.d.mts"],"removed":[],"modified":["kernel.products.json","kernel.products.lock.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/distribution.json","products/juhai.hr/manifest.json","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-policy.d.mts","products/juhai.hr/src/personnel-change-policy.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/transfer-service.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/kernel-boundaries.latest.json","reports/kernel-extensions.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.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":95423,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-23T18:22:36+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1790161181
|
1790162212
|
0
|
1790161090
|
1790162303
|
|
|
0
|
Edit
Delete
|
|
23452
|
feat(platforms): 增加真实 HTTP 数据连接验收
|
51
|
5
|
ci.yml
|
5
|
5
|
0
|
refs/heads/main
|
8be066d1f0c5db776932ea77d5e0ee292bb367dd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c0618a939c6a7f40d91e9160a083313befe7c157","after":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/c0618a939c6a7f40d91e9160a083313befe7c157...8be066d1f0c5db776932ea77d5e0ee292bb367dd","commits":[{"id":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","message":"feat(platforms): 增加真实 HTTP 数据连接验收\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8be066d1f0c5db776932ea77d5e0ee292bb367dd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T02:05:46-07:00","added":["docs/platform-http-integration.md"],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","server/.env.example","server/src/adapters/platform/http.ts","server/src/adapters/platform/index.ts","server/src/config/env.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/service.ts","server/src/openapi.ts","server/test/platform-adapter.unit.test.ts","server/test/r16-platforms.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/scripts/test-static.mjs","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","开发计划.md"]},{"id":"a3fd0cc2636423df29dc9dc197c68effebc98908","message":"merge: 合并前端全局唯一性门禁分支\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/a3fd0cc2636423df29dc9dc197c68effebc98908","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-16T02:06:14-07:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/scripts/test-static.mjs"]},{"id":"9167815cbbaae56a96573aeb4cce4af1e02d9ec6","message":"merge: 合并端到端 CI 工作流分支\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/9167815cbbaae56a96573aeb4cce4af1e02d9ec6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-16T02:06:09-07:00","added":[".github/workflows/e2e.yml"],"removed":[],"modified":[]},{"id":"ebee1953637ceabc41648708e598e9f88666935e","message":"merge: 合并嗨赞歌咏亭品类完整分支\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ebee1953637ceabc41648708e598e9f88666935e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-16T02:05:35-07:00","added":[".claude/skills/CONVENTIONS.md",".claude/skills/index.md",".claude/skills/ygg-fullstack-feature/SKILL.md",".claude/skills/ygg-governance-memory/SKILL.md",".claude/skills/ygg-honesty-boundary/SKILL.md",".claude/skills/ygg-seed-migration-guard/SKILL.md",".claude/skills/ygg-tenant-rbac-guard/SKILL.md",".claude/wf-premium-refresh.js","AGENTS.md","V1.1导航结构.md","docs/loop-engineering/README.md","docs/loop-engineering/acceptance-checklist.md","docs/loop-engineering/agent.md","docs/loop-engineering/all-projects-method.md","docs/loop-engineering/api-contract.md","docs/loop-engineering/implementation-plan.md","docs/reports/frontend-backend-integration-acceptance-2026-06-12.md","docs/reports/production-capability-truth-matrix-2026-06-12.md","e2e/scripts/make-pdf.mjs","e2e/scripts/manual-screens.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-action-detail.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-ai-copy.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-cockpit.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-growth.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-stores.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-01.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-02.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-03.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-04.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-05.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-06.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-07.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-08.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-09.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-10.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/output/artifact-build-manifest.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/output/contact-sheet.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/output/yggdrasil-sales-deck.pptx","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/package.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-01.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-02.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-03.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-04.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-05.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-06.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-07.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-08.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-09.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-10.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/profile-plan.txt","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/deck.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-01.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-02.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-03.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-04.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-05.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-06.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-07.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-08.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-09.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-10.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-actionDetail.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-ai.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-briefing.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-content.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-funnel.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-growth.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-orders.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-private.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-reviews.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-roi.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-sku.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-tasks.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/claim-spine.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/contact-sheet-plan.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/data.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/design-system.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-01.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-02.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-03.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-04.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-05.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-06.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-07.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-08.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-09.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-10.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-11.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-12.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/slide-01.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/slide-06.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/output/artifact-build-manifest.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/output/yggdrasil-sales-pro.pptx","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/package.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/contact-sheet.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-01.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-02.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-03.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-04.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-05.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-06.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-07.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-08.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-09.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-10.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-11.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-12.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/profile-plan.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/qa/comeback-scorecard.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/reference-audit.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/deck.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-01.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-02.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-03.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-04.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-05.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-06.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-07.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-08.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-09.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-10.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-11.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-12.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/source-notes.txt","outputs/juhi-skills/PROJECT_SKILL_ANALYSIS.md","outputs/juhi-skills/juhi-ygg-api-contract/SKILL.md","outputs/juhi-skills/juhi-ygg-api-contract/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-attribution-pilot/SKILL.md","outputs/juhi-skills/juhi-ygg-attribution-pilot/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-backend-module/SKILL.md","outputs/juhi-skills/juhi-ygg-backend-module/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-frontend-screen/SKILL.md","outputs/juhi-skills/juhi-ygg-frontend-screen/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-governance-memory/SKILL.md","outputs/juhi-skills/juhi-ygg-governance-memory/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-index/SKILL.md","outputs/juhi-skills/juhi-ygg-index/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-mainline-guard/SKILL.md","outputs/juhi-skills/juhi-ygg-mainline-guard/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-prisma-guard/SKILL.md","outputs/juhi-skills/juhi-ygg-prisma-guard/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-runtime-acceptance/SKILL.md","outputs/juhi-skills/juhi-ygg-runtime-acceptance/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-truth-boundary/SKILL.md","outputs/juhi-skills/juhi-ygg-truth-boundary/agents/openai.yaml","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-01-today-briefing.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-02-ops-workbench.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-03-ai-command.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-04-growth-loop.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-05-action-attribution.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-06-reviews.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-07-content-studio.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-08-sku-pricing.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-09-subscription-value.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-10-chain-stores.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-11-data-center.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-01-home.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-02-ai-module.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-03-growth-module.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-04-fulfillment-module.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/test-http.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/test-open.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/claim-spine.txt","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-01.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-02.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-03.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-04.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-05.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-06.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-07.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-08.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-09.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-10.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-11.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-12.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-13.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-14.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/artifact-build-manifest.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/contact-sheet.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/minimal-test.pptx","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/yggdrasil-tob-merchant-sales-2026-06.pptx","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/minimal-test.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-01.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-02.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-03.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-04.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-05.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-06.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-07.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-08.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-09.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-10.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-11.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-12.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-13.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-14.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/profile-plan.txt","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/scripts/build-merchant-sales-deck.mjs","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/scripts/capture-screenshots.mjs","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/source-notes.txt","outputs/manual-screens/c-actionDetail.png","outputs/manual-screens/c-ai.png","outputs/manual-screens/c-audit.png","outputs/manual-screens/c-automation.png","outputs/manual-screens/c-behavior.png","outputs/manual-screens/c-briefing.png","outputs/manual-screens/c-calendar.png","outputs/manual-screens/c-competitor.png","outputs/manual-screens/c-compliance.png","outputs/manual-screens/c-content.png","outputs/manual-screens/c-data.png","outputs/manual-screens/c-dataCenter.png","outputs/manual-screens/c-decor.png","outputs/manual-screens/c-fulfillment.png","outputs/manual-screens/c-funnel.png","outputs/manual-screens/c-growth.png","outputs/manual-screens/c-marketing.png","outputs/manual-screens/c-onboarding.png","outputs/manual-screens/c-orders.png","outputs/manual-screens/c-plans.png","outputs/manual-screens/c-private.png","outputs/manual-screens/c-reviews.png","outputs/manual-screens/c-roi.png","outputs/manual-screens/c-sku.png","outputs/manual-screens/c-stores.png","outputs/manual-screens/c-tasks.png","outputs/manual-screens/k-briefing.png","outputs/manual-screens/k-decor.png","outputs/manual-screens/k-facility.png","outputs/manual-screens/k-fission.png","outputs/manual-screens/k-home.png","outputs/manual-screens/k-member.png","outputs/manual-screens/k-sku.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-action-detail.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-ai-copy.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-cockpit.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-growth.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-stores.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/claim-spine.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/contact-sheet-plan.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/design-system.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-01.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-02.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-03.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-04.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-05.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-06.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-07.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-08.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-09.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-10.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/output/artifact-build-manifest.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/output/contact-sheet.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/output/yggdrasil-sales-rewrite.pptx","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/package.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-01.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-02.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-03.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-04.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-05.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-06.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-07.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-08.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-09.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-10.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/profile-plan.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/deck.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-01.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-02.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-03.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-04.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-05.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-06.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-07.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-08.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-09.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-10.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/source-notes.txt","outputs/manual-ygg-sales/presentations/ygg-sales/assets/cockpit-rgb.png","outputs/manual-ygg-sales/presentations/ygg-sales/assets/cockpit.png","outputs/manual-ygg-sales/presentations/ygg-sales/package.json","outputs/moodboards/yggdrasil-campaign-trust/brand-system/yggdrasil-brand-tokens.css","outputs/moodboards/yggdrasil-campaign-trust/brand-system/yggdrasil-brand-tokens.json","outputs/moodboards/yggdrasil-campaign-trust/brand-system/尤克特拉品牌系统提取稿.md","outputs/moodboards/yggdrasil-campaign-trust/run/app.js","outputs/moodboards/yggdrasil-campaign-trust/run/assets/export-icons/figma.svg","outputs/moodboards/yggdrasil-campaign-trust/run/assets/export-icons/finder.png","outputs/moodboards/yggdrasil-campaign-trust/run/codex-theme.css","outputs/moodboards/yggdrasil-campaign-trust/run/data/runtime-config.json","outputs/moodboards/yggdrasil-campaign-trust/run/data/stream-static.json","outputs/moodboards/yggdrasil-campaign-trust/run/data/stream.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/0f0e319bb822e52a9a5f6fb8dbb3a9c4.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/13b49db34415b421a99428f36778ac65.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/3946bbaa837631734bdd5f6f4763b9df.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/79ad9f72fd69f57db5518ab2df814080.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/83a2bf2bc49dd13c2fff7ebae69326c8.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/89e9341bd957d2c93dcd2a50db56d748.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/aa8bd14eeefd1527b11be80a4caf5766.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/ab816a218b6a39f01fde317ca3c757b8.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/codex-exec-image-results.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/d64effdd3a17068470cf60295a5cfb59.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/e3162d2ec9314428a25347350c209a72.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/edcea5c7563fe2e52d2888f575c55554.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/jobs.jsonl","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/preflight/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/preflight/preflight-result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-2/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/ai-top-three-cards.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/attribution-ledger.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/campaign-prep-materials.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/compliance-guardrail.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/growth-loop-still-life.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/ai-top-three-cards.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/attribution-ledger.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/campaign-prep-materials.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/compliance-guardrail.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/growth-loop-still-life.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/merchant-morning-proof.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/owner-decision-moment.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/premium-local-commerce.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/product-hero-device.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/service-detail-hands.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/storefront-threshold.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/merchant-morning-proof.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/owner-decision-moment.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/premium-local-commerce.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/product-hero-device.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/service-detail-hands.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/storefront-threshold.png","outputs/moodboards/yggdrasil-campaign-trust/run/index.html","outputs/moodboards/yggdrasil-campaign-trust/run/latest-action.json","outputs/moodboards/yggdrasil-campaign-trust/run/mood-board.html","outputs/moodboards/yggdrasil-campaign-trust/run/platform-icons.js","outputs/moodboards/yggdrasil-campaign-trust/run/run-state.json","outputs/moodboards/yggdrasil-campaign-trust/run/server.mjs","outputs/moodboards/yggdrasil-campaign-trust/run/styles.css","outputs/moodboards/yggdrasil-campaign-trust/run/theme.js","outputs/moodboards/yggdrasil-campaign-trust/spec.json","outputs/playwright/baseline-desktop.png","outputs/playwright/baseline-mobile.png","outputs/playwright/ui-refresh-desktop.png","outputs/playwright/ui-refresh-mobile.png","outputs/playwright/warm-orange-desktop.png","outputs/playwright/warm-orange-mobile.png","outputs/尤克特拉产品说明书.pdf","server/prisma/migrations/20260605061301_member_profile_segment_tags/migration.sql","server/prisma/migrations/20260605071116_behavior_event_telemetry/migration.sql","server/prisma/migrations/20260605075045_behavior_ops_dims/migration.sql","server/prisma/migrations/20260605081708_booking_source_platform/migration.sql","server/prisma/migrations/20260607021000_resources_state_runs/migration.sql","server/prisma/migrations/20260607093000_add_leads_crm/migration.sql","server/prisma/migrations/20260610015718_add_order_kind/migration.sql","server/src/adapters/platform/http.ts","server/src/lib/dates.ts","server/src/lib/fission.ts","server/src/lib/state-machine.ts","server/src/modules/automation-runner/service.ts","server/src/modules/behavior/routes.ts","server/src/modules/behavior/schema.ts","server/src/modules/behavior/service.ts","server/src/modules/leads/routes.ts","server/src/modules/leads/schema.ts","server/src/modules/leads/service.ts","server/src/modules/resources/routes.ts","server/src/modules/resources/schema.ts","server/src/modules/resources/service.ts","server/src/modules/resources/state.ts","server/src/modules/suggestions/schema.ts","server/src/modules/work-calendar/routes.ts","server/src/modules/work-calendar/service.ts","server/test/contract-schema.unit.test.ts","server/test/leads.unit.test.ts","server/test/platform-connection-truth.unit.test.ts","server/test/r23-work-calendar.test.ts","server/test/r24-behavior.test.ts","server/test/r25-member-resolve.test.ts","server/test/r26-content-rbac.test.ts","server/test/r27-restaurant-live-seed.test.ts","server/test/resource-state.unit.test.ts","业务工作流图谱.md","团购本地生活AI运营App/DESIGN-SPEC-v2.md","团购本地生活AI运营App/IOS.md","团购本地生活AI运营App/android/keystore.properties.example","团购本地生活AI运营App/ios/.gitignore","团购本地生活AI运营App/ios/App/App.xcodeproj/project.pbxproj","团购本地生活AI运营App/ios/App/App.xcworkspace/contents.xcworkspacedata","团购本地生活AI运营App/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist","团购本地生活AI运营App/ios/App/App/AppDelegate.swift","团购本地生活AI运营App/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png","团购本地生活AI运营App/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Contents.json","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png","团购本地生活AI运营App/ios/App/App/Base.lproj/LaunchScreen.storyboard","团购本地生活AI运营App/ios/App/App/Base.lproj/Main.storyboard","团购本地生活AI运营App/ios/App/App/Info.plist","团购本地生活AI运营App/ios/App/Podfile","团购本地生活AI运营App/ios/App/Podfile.lock","团购本地生活AI运营App/screens-behavior.jsx","团购本地生活AI运营App/screens-leads.jsx","团购本地生活AI运营App/scripts/android-deploy-check.mjs","团购本地生活AI运营App/scripts/generate-ios-assets.mjs","团购本地生活AI运营App/scripts/ios-deploy-check.mjs","团购本地生活AI运营App/设计令牌.md","尤克特拉产品说明书.md","尤克特拉项目销售手册.md","模块重复治理.md","真实链路与状态机审计矩阵.md","项目模块关系图谱.md"],"removed":["团购本地生活AI运营App/screens-home.jsx"],"modified":[".claude/launch.json",".github/workflows/ci.yml",".gitignore","e2e/tests/02-deep-flows.spec.ts","e2e/tests/03-role-matrix.spec.ts","e2e/utils/app.ts","server/.env.example","server/README.md","server/docker-compose.yml","server/docker-entrypoint.sh","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/adapters/platform/index.ts","server/src/adapters/platform/mock.ts","server/src/adapters/platform/types.ts","server/src/adapters/weather/index.ts","server/src/config/env.ts","server/src/lib/context.ts","server/src/lib/money.ts","server/src/lib/platform.ts","server/src/lib/prisma.ts","server/src/modules/actions/routes.ts","server/src/modules/actions/service.ts","server/src/modules/attribution/service.ts","server/src/modules/audit/routes.ts","server/src/modules/automation/routes.ts","server/src/modules/automation/service.ts","server/src/modules/booking/routes.ts","server/src/modules/booking/schema.ts","server/src/modules/booking/service.ts","server/src/modules/briefing/service.ts","server/src/modules/compliance/routes.ts","server/src/modules/content/routes.ts","server/src/modules/content/service.ts","server/src/modules/groupbuy/routes.ts","server/src/modules/groupbuy/schema.ts","server/src/modules/groupbuy/service.ts","server/src/modules/merchant/routes.ts","server/src/modules/merchant/service.ts","server/src/modules/metrics/routes.ts","server/src/modules/metrics/service.ts","server/src/modules/ops/routes.ts","server/src/modules/ops/schema.ts","server/src/modules/ops/service.ts","server/src/modules/orders/routes.ts","server/src/modules/orders/service.ts","server/src/modules/periphery/routes.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/service.ts","server/src/modules/pricing/service.ts","server/src/modules/referral/routes.ts","server/src/modules/referral/schema.ts","server/src/modules/referral/service.ts","server/src/modules/reviews/routes.ts","server/src/modules/reviews/service.ts","server/src/modules/skus/routes.ts","server/src/modules/skus/schema.ts","server/src/modules/store/service.ts","server/src/modules/suggestions/routes.ts","server/src/modules/suggestions/service.ts","server/src/modules/tasks/routes.ts","server/src/modules/tasks/schema.ts","server/src/modules/tasks/service.ts","server/src/modules/wallet/routes.ts","server/src/modules/wallet/schema.ts","server/src/modules/wallet/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/competitor-scan.test.ts","server/test/db-url.ts","server/test/global-setup.ts","server/test/helpers.ts","server/test/platform-adapter.unit.test.ts","server/test/r0-r1-auth.test.ts","server/test/r11-review-care.test.ts","server/test/r12-profile.test.ts","server/test/r15-pricing.test.ts","server/test/r16-platforms.test.ts","server/test/r19-referral.test.ts","server/test/r2-ops.test.ts","server/test/r20-ops.test.ts","server/test/r21-platform-ingest.test.ts","server/test/r3-growth.test.ts","server/test/r4-trust.test.ts","server/test/r8-boundary-concurrency.test.ts","server/test/setup-env.ts","团购本地生活AI运营App/ANDROID.md","团购本地生活AI运营App/README.md","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/android/.gitignore","团购本地生活AI运营App/android/app/build.gradle","团购本地生活AI运营App/api.js","团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/capacitor.config.json","团购本地生活AI运营App/diagnosis.js","团购本地生活AI运营App/eslint.config.mjs","团购本地生活AI运营App/index.html","团购本地生活AI运营App/merchant-profiles.js","团购本地生活AI运营App/package-lock.json","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/screens-compliance.jsx","团购本地生活AI运营App/screens-data.jsx","团购本地生活AI运营App/screens-decor.jsx","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-fission.jsx","团购本地生活AI运营App/screens-fulfillment.jsx","团购本地生活AI运营App/screens-growth.jsx","团购本地生活AI运营App/screens-live.jsx","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-private.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/screens-tasks.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/screen-governance.mjs","团购本地生活AI运营App/scripts/test-static.mjs","团购本地生活AI运营App/tweaks-panel.jsx","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","团购本地生活AI运营App/产品诊断与优化方案.html","尤克特拉业务功能分析.md","尤克特拉商业化与融资一页纸.md"]},{"id":"734393621449932f6b8d21e09bf5f220ec998cc5","message":"fix(booking): verify 去除 validFrom 闸 — 修 r22「未来预约当场核销」被误拦\n\n5f3b333 在 verify 加了 `validFrom \u003e now → 尚未生效`,而券 validFrom=startAt。\nr22/r16 setup 对「明天的预约」当场核销时被此闸拦死 → booking 停 BOOKED、completeBooking 返回 409。\nmain verify 无此闸;去除后与 main 对齐,仅保留 validUntil 过期拦截。无测试依赖「尚未生效」。\ntsc / test:unit 通过;r22 集成待 CI 验证(本机无 DB/Docker)。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/734393621449932f6b8d21e09bf5f220ec998cc5","author":{"name":"luojuhai","email":"luojuhai@luojuhaideMacBook-Pro.local","username":""},"committer":{"name":"luojuhai","email":"luojuhai@luojuhaideMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-07-07T13:58:42+08:00","added":[],"removed":[],"modified":["server/src/modules/booking/service.ts"]}],"total_commits":0,"head_commit":{"id":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","message":"feat(platforms): 增加真实 HTTP 数据连接验收\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8be066d1f0c5db776932ea77d5e0ee292bb367dd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T02:05:46-07:00","added":["docs/platform-http-integration.md"],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","server/.env.example","server/src/adapters/platform/http.ts","server/src/adapters/platform/index.ts","server/src/config/env.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/service.ts","server/src/openapi.ts","server/test/platform-adapter.unit.test.ts","server/test/r16-platforms.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/scripts/test-static.mjs","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","开发计划.md"]},"repository":{"id":51,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":6641,"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-14T15:54: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
|
1784712281
|
1784712493
|
0
|
1784712281
|
1784712493
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23882
|
feat(platform): pin published RC contracts and gov feat(platform): pin published RC contracts and governance in HR checks...
|
83
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
df46b98835ff77c7f4675e043d0869799fbb8d08
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c652cd634964e915a0a9895cc9a91be4381333b0","after":"df46b98835ff77c7f4675e043d0869799fbb8d08","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/c652cd634964e915a0a9895cc9a91be4381333b0...df46b98835ff77c7f4675e043d0869799fbb8d08","commits":[{"id":"df46b98835ff77c7f4675e043d0869799fbb8d08","message":"feat(platform): pin published RC contracts and governance in HR checks\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/df46b98835ff77c7f4675e043d0869799fbb8d08","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-12T01:51:37-07:00","added":[".github/workflows/platform-governance.yml",".npmrc","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"df46b98835ff77c7f4675e043d0869799fbb8d08","message":"feat(platform): pin published RC contracts and governance in HR checks\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/df46b98835ff77c7f4675e043d0869799fbb8d08","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-12T01:51:37-07:00","added":[".github/workflows/platform-governance.yml",".npmrc","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","package.json","pnpm-lock.yaml"]},"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":3899,"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-08-30T15:09:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789203290
|
1789203320
|
0
|
1789203232
|
1789203322
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23883
|
feat(platform): pin published RC contracts and gov feat(platform): pin published RC contracts and governance in HR checks...
|
83
|
5
|
platform-governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
df46b98835ff77c7f4675e043d0869799fbb8d08
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c652cd634964e915a0a9895cc9a91be4381333b0","after":"df46b98835ff77c7f4675e043d0869799fbb8d08","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/c652cd634964e915a0a9895cc9a91be4381333b0...df46b98835ff77c7f4675e043d0869799fbb8d08","commits":[{"id":"df46b98835ff77c7f4675e043d0869799fbb8d08","message":"feat(platform): pin published RC contracts and governance in HR checks\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/df46b98835ff77c7f4675e043d0869799fbb8d08","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-12T01:51:37-07:00","added":[".github/workflows/platform-governance.yml",".npmrc","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"df46b98835ff77c7f4675e043d0869799fbb8d08","message":"feat(platform): pin published RC contracts and governance in HR checks\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/df46b98835ff77c7f4675e043d0869799fbb8d08","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-12T01:51:37-07:00","added":[".github/workflows/platform-governance.yml",".npmrc","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","package.json","pnpm-lock.yaml"]},"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":3899,"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-08-30T15:09: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
|
1
|
17
|
1789203799
|
1789203821
|
31000000000
|
1789203232
|
1789203821
|
|
|
0
|
Edit
Delete
|
|
23880
|
feat(platform): consume verified RC contracts and feat(platform): consume verified RC contracts and governance with private CI auth...
|
76
|
5
|
governance.yml
|
40
|
5
|
0
|
refs/heads/main
|
5f885a2a77b66d0ae55dff6ae8f1e2a64e087670
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a772517da3040f54e5d2c91fa5e1c133cabd3c17","after":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/a772517da3040f54e5d2c91fa5e1c133cabd3c17...5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","commits":[{"id":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","message":"feat(platform): consume verified RC contracts and governance with private CI auth\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","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-12T01:51:30-07:00","added":[".github/workflows/platform-governance.yml","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".npmrc","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/compose.yml","docs/operations/production-runbook.md","package.json","pnpm-lock.yaml","scripts/check-all.mjs"]}],"total_commits":0,"head_commit":{"id":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","message":"feat(platform): consume verified RC contracts and governance with private CI auth\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","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-12T01:51:30-07:00","added":[".github/workflows/platform-governance.yml","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".npmrc","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/compose.yml","docs/operations/production-runbook.md","package.json","pnpm-lock.yaml","scripts/check-all.mjs"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":82774,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":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-09-05T13:02: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
|
36
|
1789203138
|
1789203259
|
0
|
1789203137
|
1789203381
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23881
|
feat(platform): consume verified RC contracts and feat(platform): consume verified RC contracts and governance with private CI auth...
|
76
|
5
|
platform-governance.yml
|
41
|
5
|
0
|
refs/heads/main
|
5f885a2a77b66d0ae55dff6ae8f1e2a64e087670
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a772517da3040f54e5d2c91fa5e1c133cabd3c17","after":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/a772517da3040f54e5d2c91fa5e1c133cabd3c17...5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","commits":[{"id":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","message":"feat(platform): consume verified RC contracts and governance with private CI auth\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","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-12T01:51:30-07:00","added":[".github/workflows/platform-governance.yml","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".npmrc","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/compose.yml","docs/operations/production-runbook.md","package.json","pnpm-lock.yaml","scripts/check-all.mjs"]}],"total_commits":0,"head_commit":{"id":"5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","message":"feat(platform): consume verified RC contracts and governance with private CI auth\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/5f885a2a77b66d0ae55dff6ae8f1e2a64e087670","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-12T01:51:30-07:00","added":[".github/workflows/platform-governance.yml","governance/fixtures/contracts.suite.json","scripts/configure-platform-npm.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".npmrc","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/compose.yml","docs/operations/production-runbook.md","package.json","pnpm-lock.yaml","scripts/check-all.mjs"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":82774,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":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-09-05T13:02: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
|
1789203259
|
1789203290
|
0
|
1789203137
|
1789203381
|
|
|
0
|
Edit
Delete
|
|
23597
|
feat(permission): 新增权限决策规划
|
108
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
d63bc91b99a4ea62c35d0cd2368045ce54e4385c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","message":"feat(permission): 新增权限决策规划\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/d63bc91b99a4ea62c35d0cd2368045ce54e4385c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/permission/permission-decision.service.ts","docs/domain/permission-preflight-blueprint.md","packages/contracts/src/permission-decision-planner.test.ts","packages/contracts/src/permission-decision-planner.ts","packages/contracts/src/permission-preflight.test.ts","packages/contracts/src/permission-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"a58f9c47304f1983aca6ba7072f58ff5c0969f55","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/a58f9c47304f1983aca6ba7072f58ff5c0969f55","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"eb38aefb3c40e4c9a3aa368ad1417a2f8f79035a","message":"feat: 平台身份重绑定 permission-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/eb38aefb3c40e4c9a3aa368ad1417a2f8f79035a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.permission/README.md","products/juhai.permission/acceptance/juhai.permission.order.acceptance.mjs","products/juhai.permission/migrations/juhai.permission.order/20260826090000_create_orders.sql","products/juhai.permission/migrations/juhai.permission.order/20260826091000_create_order_events.sql","products/juhai.permission/package.json","products/juhai.permission/product.manifest.json","products/juhai.permission/src/contracts.ts","products/juhai.permission/src/fastify.ts","products/juhai.permission/src/host.ts","products/juhai.permission/src/index.ts","products/juhai.permission/src/manifest.ts","products/juhai.permission/src/nestjs.ts","products/juhai.permission/src/order-repository.ts","products/juhai.permission/src/tools.ts","products/juhai.permission/src/web.tsx","products/juhai.permission/test/os-host.runtime.test.ts","products/juhai.permission/tsconfig.os-host.json","products/juhai.permission/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"4491834f55010479358d5650e9f738a394335f6f","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/4491834f55010479358d5650e9f738a394335f6f","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03eb3aee5143031086e4faf6c7c713d6fb7bde49","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/03eb3aee5143031086e4faf6c7c713d6fb7bde49","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:06-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","message":"feat(permission): 新增权限决策规划\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/d63bc91b99a4ea62c35d0cd2368045ce54e4385c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/permission/permission-decision.service.ts","docs/domain/permission-preflight-blueprint.md","packages/contracts/src/permission-decision-planner.test.ts","packages/contracts/src/permission-decision-planner.ts","packages/contracts/src/permission-preflight.test.ts","packages/contracts/src/permission-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":108,"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":"permission-platform","full_name":"luoanwu/permission-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/permission-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/permission-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/permission-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/permission-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/permission-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-01T21:58:17+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788279143
|
1788279840
|
0
|
1788271187
|
1788373230
|
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
|
|
25285
|
feat(permission): 提交整租户失效审批账本与全部配套改动
|
116
|
5
|
platform.yml
|
429
|
5
|
0
|
refs/heads/main
|
32c6336fce5998a2cce5a7e28f18c68dd6ecd31d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2970ad0a12b33373c6ae8e39f9173d9d468e0130","after":"32c6336fce5998a2cce5a7e28f18c68dd6ecd31d","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/2970ad0a12b33373c6ae8e39f9173d9d468e0130...32c6336fce5998a2cce5a7e28f18c68dd6ecd31d","commits":[{"id":"32c6336fce5998a2cce5a7e28f18c68dd6ecd31d","message":"feat(permission): 提交整租户失效审批账本与全部配套改动\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/32c6336fce5998a2cce5a7e28f18c68dd6ecd31d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-09T17:38:10-07:00","added":[".local/backups/caddy-pre-flight-20261009T234651Z.Caddyfile","docs/evidence/main-submit-2026-10-09/api-tests.log","docs/evidence/main-submit-2026-10-09/api-typecheck.log","docs/evidence/main-submit-2026-10-09/check.log","docs/evidence/main-submit-2026-10-09/contract-tests.log","docs/evidence/main-submit-2026-10-09/governance-tests.log","docs/evidence/main-submit-2026-10-09/module-build.log","docs/evidence/main-submit-2026-10-09/permission-tests.log","docs/evidence/main-submit-2026-10-09/validation.json","docs/evidence/main-submit-2026-10-09/workbench-typecheck.log","docs/permission整租户失效受控命令实现记录-2026-09-26.md","docs/全部提交主分支与服务预检-2026-10-09.md","runtime/modules/permission/prisma/migrations/202609260002_permission_operation_ledger/migration.sql","runtime/modules/permission/src/ops/permission-ops.test.ts","runtime/modules/permission/src/persistence/permission-operations.ts"],"removed":[],"modified":["CLAUDE.md","README.md","contracts/candidates/contracts/platform-ops-definitions.v1.json","contracts/catalogs/decisions.json","contracts/test/governance-linter.test.mjs","contracts/test/impact-graph.test.mjs","docs/runbook.md","docs/企业公共基础平台对外交付设计.md","docs/平台运维命令OPS-1实现记录-2026-09-17.md","docs/缺失模块完善清单-2026-09-21.md","docs/项目完整能力表.md","governance/authority-basis.json","governance/cross-cutting-capabilities.json","governance/job-readiness.json","governance/stub-surface.json","governance/test/build-workbench-snapshots.test.mjs","governance/test/cross-cutting-capabilities.test.mjs","governance/test/job-readiness.test.mjs","reports/cross-cutting-capabilities.latest.json","reports/doc-claims.latest.json","reports/migration-decs.latest.json","reports/stub-surface.latest.json","runtime/apps/api-nestjs/test/platform.ops.http.test.ts","runtime/apps/api-nestjs/test/platform.ops.test.ts","runtime/apps/workbench/src/app/operations/page.tsx","runtime/apps/workbench/src/components/operations/permission-cache-rebuild.tsx","runtime/modules.json","runtime/modules/permission/prisma/schema.prisma","runtime/modules/permission/src/index.ts","runtime/modules/permission/src/ops/permission-ops.ts","runtime/modules/permission/src/persistence/permission-store.ts","runtime/modules/permission/test/ops.integration.ts","runtime/packages/contracts/src/platform-ops-definitions.ts","runtime/reports/platform-ops-definitions.latest.json"]}],"total_commits":0,"head_commit":{"id":"32c6336fce5998a2cce5a7e28f18c68dd6ecd31d","message":"feat(permission): 提交整租户失效审批账本与全部配套改动\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/32c6336fce5998a2cce5a7e28f18c68dd6ecd31d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-09T17:38:10-07:00","added":[".local/backups/caddy-pre-flight-20261009T234651Z.Caddyfile","docs/evidence/main-submit-2026-10-09/api-tests.log","docs/evidence/main-submit-2026-10-09/api-typecheck.log","docs/evidence/main-submit-2026-10-09/check.log","docs/evidence/main-submit-2026-10-09/contract-tests.log","docs/evidence/main-submit-2026-10-09/governance-tests.log","docs/evidence/main-submit-2026-10-09/module-build.log","docs/evidence/main-submit-2026-10-09/permission-tests.log","docs/evidence/main-submit-2026-10-09/validation.json","docs/evidence/main-submit-2026-10-09/workbench-typecheck.log","docs/permission整租户失效受控命令实现记录-2026-09-26.md","docs/全部提交主分支与服务预检-2026-10-09.md","runtime/modules/permission/prisma/migrations/202609260002_permission_operation_ledger/migration.sql","runtime/modules/permission/src/ops/permission-ops.test.ts","runtime/modules/permission/src/persistence/permission-operations.ts"],"removed":[],"modified":["CLAUDE.md","README.md","contracts/candidates/contracts/platform-ops-definitions.v1.json","contracts/catalogs/decisions.json","contracts/test/governance-linter.test.mjs","contracts/test/impact-graph.test.mjs","docs/runbook.md","docs/企业公共基础平台对外交付设计.md","docs/平台运维命令OPS-1实现记录-2026-09-17.md","docs/缺失模块完善清单-2026-09-21.md","docs/项目完整能力表.md","governance/authority-basis.json","governance/cross-cutting-capabilities.json","governance/job-readiness.json","governance/stub-surface.json","governance/test/build-workbench-snapshots.test.mjs","governance/test/cross-cutting-capabilities.test.mjs","governance/test/job-readiness.test.mjs","reports/cross-cutting-capabilities.latest.json","reports/doc-claims.latest.json","reports/migration-decs.latest.json","reports/stub-surface.latest.json","runtime/apps/api-nestjs/test/platform.ops.http.test.ts","runtime/apps/api-nestjs/test/platform.ops.test.ts","runtime/apps/workbench/src/app/operations/page.tsx","runtime/apps/workbench/src/components/operations/permission-cache-rebuild.tsx","runtime/modules.json","runtime/modules/permission/prisma/schema.prisma","runtime/modules/permission/src/index.ts","runtime/modules/permission/src/ops/permission-ops.ts","runtime/modules/permission/src/persistence/permission-store.ts","runtime/modules/permission/test/ops.integration.ts","runtime/packages/contracts/src/platform-ops-definitions.ts","runtime/reports/platform-ops-definitions.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":30612,"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":43,"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-10-10T08:37: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
|
34
|
1791592712
|
1791592760
|
0
|
1791592707
|
1791592800
|
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
|
|
24778
|
feat(outcome): Outcome integration facts 1.2.0 wit feat(outcome): Outcome integration facts 1.2.0 with optional five-dimension coordinates (P2.2d)...
|
121
|
5
|
kernel-ci.yml
|
131
|
5
|
0
|
refs/heads/main
|
3ff57d667dbac09e449eee802be4e82c1e1b9fe2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"19065dcb324bc54799c976bcb80943e33251e4ab","after":"3ff57d667dbac09e449eee802be4e82c1e1b9fe2","compare_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/compare/19065dcb324bc54799c976bcb80943e33251e4ab...3ff57d667dbac09e449eee802be4e82c1e1b9fe2","commits":[{"id":"3ff57d667dbac09e449eee802be4e82c1e1b9fe2","message":"feat(outcome): Outcome integration facts 1.2.0 with optional five-dimension coordinates (P2.2d)\n\nCo-Authored-By: Claude Sonnet 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/3ff57d667dbac09e449eee802be4e82c1e1b9fe2","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-30T03:36:54-07:00","added":["contracts/outcome-integration-event.v1-2.schema.json","docs/releases/candidates/p22d-outcome-coordinates.md","sql/114_outcome_coordinates.sql"],"removed":[],"modified":["contracts/registry.json","docs/outcome-integration-events.md","src/contracts.js","src/integration-events.js","src/kernel/journal.js","src/runtime-health.js","test/contracts.test.js","test/outcome-inconclusive-integration.integration.test.js","test/outcome-integration-events.integration.test.js"]}],"total_commits":0,"head_commit":{"id":"3ff57d667dbac09e449eee802be4e82c1e1b9fe2","message":"feat(outcome): Outcome integration facts 1.2.0 with optional five-dimension coordinates (P2.2d)\n\nCo-Authored-By: Claude Sonnet 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/3ff57d667dbac09e449eee802be4e82c1e1b9fe2","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-30T03:36:54-07:00","added":["contracts/outcome-integration-event.v1-2.schema.json","docs/releases/candidates/p22d-outcome-coordinates.md","sql/114_outcome_coordinates.sql"],"removed":[],"modified":["contracts/registry.json","docs/outcome-integration-events.md","src/contracts.js","src/integration-events.js","src/kernel/journal.js","src/runtime-health.js","test/contracts.test.js","test/outcome-inconclusive-integration.integration.test.js","test/outcome-integration-events.integration.test.js"]},"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":77744,"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":27,"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-30T18:38: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
|
1
|
4
|
1790775913
|
1790776536
|
0
|
1790764743
|
1790776536
|
|
|
0
|
Edit
Delete
|
|
23534
|
feat(operations): govern event recovery and activa feat(operations): govern event recovery and activation leases...
|
81
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
fbedaf6d0398693dc8466b4b72b6265d2397d93c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","after":"fbedaf6d0398693dc8466b4b72b6265d2397d93c","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/158a8d0a3ccc575be23117643ac664ec1b6f73dc...fbedaf6d0398693dc8466b4b72b6265d2397d93c","commits":[{"id":"fbedaf6d0398693dc8466b4b72b6265d2397d93c","message":"feat(operations): govern event recovery and activation leases\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/fbedaf6d0398693dc8466b4b72b6265d2397d93c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T19:30:17-07:00","added":["apps/api-fastify/prisma/migrations/20260825210000_event_delivery_operations/migration.sql","apps/api-fastify/src/modules/service-operations/event-delivery.service.ts","apps/api-nestjs/prisma/migrations/20260825210000_event_delivery_operations/migration.sql","apps/api-nestjs/src/service-operations/event-delivery.service.ts","apps/web/src/features/service-operations/api/event-delivery-api.ts","apps/web/src/features/service-operations/components/EventDeliveryOperations.tsx","apps/web/src/features/service-operations/hooks/use-event-delivery.ts","packages/contracts/src/event-delivery.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/plugins/os-activation.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-fastify/test/service-operations.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/service-cases/os-activation-dispatcher.service.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/service-operations/service-operations.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/api-nestjs/test/service-operations.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/ServiceOperationsPanels.tsx","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/business-logic-map.md","docs/domain/owner-matrix.md","docs/domain/service-operations-blueprint.md","docs/governance-experience.md","packages/contracts/src/auth.test.ts","packages/contracts/src/auth.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.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-auth-source.mjs","scripts/check-dual-backend-parity.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"fbedaf6d0398693dc8466b4b72b6265d2397d93c","message":"feat(operations): govern event recovery and activation leases\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/fbedaf6d0398693dc8466b4b72b6265d2397d93c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T19:30:17-07:00","added":["apps/api-fastify/prisma/migrations/20260825210000_event_delivery_operations/migration.sql","apps/api-fastify/src/modules/service-operations/event-delivery.service.ts","apps/api-nestjs/prisma/migrations/20260825210000_event_delivery_operations/migration.sql","apps/api-nestjs/src/service-operations/event-delivery.service.ts","apps/web/src/features/service-operations/api/event-delivery-api.ts","apps/web/src/features/service-operations/components/EventDeliveryOperations.tsx","apps/web/src/features/service-operations/hooks/use-event-delivery.ts","packages/contracts/src/event-delivery.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/plugins/os-activation.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/service-cases.integration.test.ts","apps/api-fastify/test/service-operations.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/service-cases/os-activation-dispatcher.service.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/service-operations/service-operations.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/service-cases.integration.test.ts","apps/api-nestjs/test/service-operations.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/ServiceOperationsPanels.tsx","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/business-logic-map.md","docs/domain/owner-matrix.md","docs/domain/service-operations-blueprint.md","docs/governance-experience.md","packages/contracts/src/auth.test.ts","packages/contracts/src/auth.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.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-auth-source.mjs","scripts/check-dual-backend-parity.mjs","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":2236,"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:07: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
|
6
|
1787712441
|
1787712471
|
0
|
1787711431
|
1787712472
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23599
|
feat(notification): 新增 Webhook 投递规划
|
110
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
06991c06ed232dd99a9384486146e7e119030769
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"06991c06ed232dd99a9384486146e7e119030769","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"06991c06ed232dd99a9384486146e7e119030769","message":"feat(notification): 新增 Webhook 投递规划\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/06991c06ed232dd99a9384486146e7e119030769","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/notification/notification-planner.service.ts","docs/domain/notification-effect-blueprint.md","packages/contracts/src/notification-effect.test.ts","packages/contracts/src/notification-effect.ts","packages/contracts/src/webhook-delivery-planner.test.ts","packages/contracts/src/webhook-delivery-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"0462d0ff032e829cb3ecc98ac2554f804b85325c","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/0462d0ff032e829cb3ecc98ac2554f804b85325c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"043a8ade4f7129842c06118ad381026679148fd5","message":"feat: 平台身份重绑定 notification-hub(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/043a8ade4f7129842c06118ad381026679148fd5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.notification/README.md","products/juhai.notification/acceptance/juhai.notification.order.acceptance.mjs","products/juhai.notification/migrations/juhai.notification.order/20260826090000_create_orders.sql","products/juhai.notification/migrations/juhai.notification.order/20260826091000_create_order_events.sql","products/juhai.notification/package.json","products/juhai.notification/product.manifest.json","products/juhai.notification/src/contracts.ts","products/juhai.notification/src/fastify.ts","products/juhai.notification/src/host.ts","products/juhai.notification/src/index.ts","products/juhai.notification/src/manifest.ts","products/juhai.notification/src/nestjs.ts","products/juhai.notification/src/order-repository.ts","products/juhai.notification/src/tools.ts","products/juhai.notification/src/web.tsx","products/juhai.notification/test/os-host.runtime.test.ts","products/juhai.notification/tsconfig.os-host.json","products/juhai.notification/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"ca1700973414443af423502aa79ce327d0b3c73e","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/ca1700973414443af423502aa79ce327d0b3c73e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ea9f0c7ab4826ab009880edb3a75886a5eeebcb9","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/ea9f0c7ab4826ab009880edb3a75886a5eeebcb9","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"06991c06ed232dd99a9384486146e7e119030769","message":"feat(notification): 新增 Webhook 投递规划\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/06991c06ed232dd99a9384486146e7e119030769","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/notification/notification-planner.service.ts","docs/domain/notification-effect-blueprint.md","packages/contracts/src/notification-effect.test.ts","packages/contracts/src/notification-effect.ts","packages/contracts/src/webhook-delivery-planner.test.ts","packages/contracts/src/webhook-delivery-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":110,"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":"notification-hub","full_name":"luoanwu/notification-hub","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/notification-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/notification-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/notification-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/notification-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/notification-hub.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-01T21:58:21+08:00","updated_at":"2026-09-01T21:59:48+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
|
1788279300
|
1788280140
|
0
|
1788271189
|
1788373230
|
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
|
|
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
|
|
26996
|
feat(notification): bind signing credentials to co feat(notification): bind signing credentials to controlled M2 access...
|
116
|
5
|
platform.yml
|
1364
|
5
|
0
|
refs/pull/8/head
|
ad396dcce7744707856a25ee2a671f6633a0524e
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":8,"pull_request":{"id":258,"url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/pulls/8","number":8,"user":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"title":"feat(notification): bind signing credentials to controlled M2 access","body":"","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":674,"deletions":58,"changed_files":31,"html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/pulls/8","diff_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/pulls/8.diff","patch_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/pulls/8.patch","mergeable":true,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"ca8825af46bd8d9575f4617b4d46fb0c4bb6c4d8","repo_id":116,"repo":{"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":147414,"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":1,"watchers_count":1,"branch_count":184,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-11-02T17:11:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"codex/notification-credential-binding-20261102","ref":"codex/notification-credential-binding-20261102","sha":"ad396dcce7744707856a25ee2a671f6633a0524e","repo_id":116,"repo":{"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":147414,"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":1,"watchers_count":1,"branch_count":184,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-11-02T17:11:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"d583efb4789cc75197cc4ca99b9c97ec970fc260","due_date":null,"created_at":"2026-11-02T17:13:08+08:00","updated_at":"2026-11-02T17:13:08+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"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":147414,"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":1,"watchers_count":1,"branch_count":184,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-11-02T17:11: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":[]},"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
|
30
|
1793611863
|
1793611876
|
0
|
1793610788
|
1793614872
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/pull/8/head
|
1
|
Edit
Delete
|
|
24404
|
feat(notification): add platform delivery consumer
|
81
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
066afd0a04f4765ee9a8aefae9f2eb8272bb88b2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd","after":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/cc4e7d4da3cd396ee608a41307d2b9a496b8d3dd...066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","commits":[{"id":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","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-23T06:19:55-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/.env.example","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},{"id":"1cebe527600912193f7e672fb478ae39a84db7ae","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-after-sales-service-system}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`juhai-after-sales-service-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-after-sales-service-system/commit/1cebe527600912193f7e672fb478ae39a84db7ae","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":"066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/066afd0a04f4765ee9a8aefae9f2eb8272bb88b2","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-23T06:19:55-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/.env.example","apps/api-fastify/src/modules/service-operations/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/service-operations/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/service-case-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"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":3377,"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-09-19T07:07:24+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790170637
|
1790170645
|
0
|
1790170042
|
1790170647
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24422
|
feat(notification): add platform delivery consumer
|
72
|
5
|
governance.yml
|
13
|
5
|
0
|
refs/heads/main
|
3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6908c19f9faf3b006d73054657b97c6cb8f945d9","after":"3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/6908c19f9faf3b006d73054657b97c6cb8f945d9...3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","commits":[{"id":"3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","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-23T07:56:12-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md","packages/notification-delivery/README.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/events/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},{"id":"8cae1a58031ddc85848d02cff06cfd4d11083098","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-quotation-system}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`juhai-quotation-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-quotation-system/commit/8cae1a58031ddc85848d02cff06cfd4d11083098","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-18T19:13:32-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","message":"feat(notification): add platform delivery consumer\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/3b7ca66f6af2d9ecf7465dea5be95b1aa199b5a0","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-23T07:56:12-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md","packages/notification-delivery/README.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/notification-delivery/notification-delivery.service.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/events/notification-delivery.service.ts","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"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":35859,"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":1,"watchers_count":1,"branch_count":11,"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-09-19T07:07:24+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790175940
|
1790175971
|
0
|
1790175423
|
1790175971
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24392
|
feat(notification): accept real platform deliverie feat(notification): accept real platform deliveries...
|
116
|
5
|
platform.yml
|
265
|
5
|
0
|
refs/heads/main
|
65e5f5a7b7ee8188b5ed27fe6f0f2fe9fdd9fc85
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a22287798200332c0fc47875259eced65940906a","after":"65e5f5a7b7ee8188b5ed27fe6f0f2fe9fdd9fc85","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/a22287798200332c0fc47875259eced65940906a...65e5f5a7b7ee8188b5ed27fe6f0f2fe9fdd9fc85","commits":[{"id":"65e5f5a7b7ee8188b5ed27fe6f0f2fe9fdd9fc85","message":"feat(notification): accept real platform deliveries\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/65e5f5a7b7ee8188b5ed27fe6f0f2fe9fdd9fc85","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:03:11-07:00","added":["docs/Notification真实投递消费者验收-2026-09-23.md","runtime/test/e2e/notification-real-consumer.test.ts"],"removed":[],"modified":["contracts/catalogs/permissions.json","contracts/contracts/notification-delivery-api.v1.openapi.json","contracts/test/governance-linter.test.mjs","contracts/test/impact-graph.test.mjs","docs/缺失模块完善清单-2026-09-21.md","governance/job-readiness.json","governance/release-packages.json","runtime/apps/api-nestjs/src/platform/http/notification-webhook.controller.ts","runtime/clients/notification-webhook/README.md","runtime/clients/notification-webhook/package.json","runtime/clients/notification-webhook/src/index.test.ts","runtime/clients/notification-webhook/src/index.ts","runtime/modules/kit/src/index.ts","runtime/modules/kit/src/notification-webhook-runtime.ts","runtime/modules/notification-webhook/src/delivery/delivery-authorizer.test.ts","runtime/modules/notification-webhook/src/delivery/delivery-authorizer.ts","runtime/modules/notification-webhook/src/delivery/delivery-executor.ts","runtime/modules/notification-webhook/src/delivery/delivery-lifecycle.ts","runtime/modules/notification-webhook/src/index.ts","runtime/packages/contracts/src/permission-catalog.ts","runtime/pnpm-lock.yaml","runtime/reports/permission-catalog.latest.json","runtime/test/package.json"]}],"total_commits":0,"head_commit":{"id":"65e5f5a7b7ee8188b5ed27fe6f0f2fe9fdd9fc85","message":"feat(notification): accept real platform deliveries\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/65e5f5a7b7ee8188b5ed27fe6f0f2fe9fdd9fc85","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:03:11-07:00","added":["docs/Notification真实投递消费者验收-2026-09-23.md","runtime/test/e2e/notification-real-consumer.test.ts"],"removed":[],"modified":["contracts/catalogs/permissions.json","contracts/contracts/notification-delivery-api.v1.openapi.json","contracts/test/governance-linter.test.mjs","contracts/test/impact-graph.test.mjs","docs/缺失模块完善清单-2026-09-21.md","governance/job-readiness.json","governance/release-packages.json","runtime/apps/api-nestjs/src/platform/http/notification-webhook.controller.ts","runtime/clients/notification-webhook/README.md","runtime/clients/notification-webhook/package.json","runtime/clients/notification-webhook/src/index.test.ts","runtime/clients/notification-webhook/src/index.ts","runtime/modules/kit/src/index.ts","runtime/modules/kit/src/notification-webhook-runtime.ts","runtime/modules/notification-webhook/src/delivery/delivery-authorizer.test.ts","runtime/modules/notification-webhook/src/delivery/delivery-authorizer.ts","runtime/modules/notification-webhook/src/delivery/delivery-executor.ts","runtime/modules/notification-webhook/src/delivery/delivery-lifecycle.ts","runtime/modules/notification-webhook/src/index.ts","runtime/packages/contracts/src/permission-catalog.ts","runtime/pnpm-lock.yaml","runtime/reports/permission-catalog.latest.json","runtime/test/package.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":35231,"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":45,"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-23T19:17: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
|
30
|
1790167522
|
1790167643
|
0
|
1790167521
|
1790168694
|
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
|
|
24241
|
feat(modules): public-file 宿主数据迁移与对账工具(DEC-040 实施工 feat(modules): public-file 宿主数据迁移与对账工具(DEC-040 实施工作包第 2—3 步的可执行面)...
|
116
|
5
|
platform.yml
|
182
|
5
|
0
|
refs/heads/main
|
3b55095e3aac481fdce7fde36f0dcc24309d5ef4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"978aaeeb46174baca37960b898e7fd086cec6696","after":"3b55095e3aac481fdce7fde36f0dcc24309d5ef4","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/978aaeeb46174baca37960b898e7fd086cec6696...3b55095e3aac481fdce7fde36f0dcc24309d5ef4","commits":[{"id":"3b55095e3aac481fdce7fde36f0dcc24309d5ef4","message":"feat(modules): public-file 宿主数据迁移与对账工具(DEC-040 实施工作包第 2—3 步的可执行面)\n\n**不连任何库**:源库在工单仓(另一个 Owner 的环境),目标库在平台,两边凭据不该压进一个进程。\n工具做的是「生成幂等 SQL + 逐条对账」,导出与执行由操作者各自用 psql 完成——与仓里\nstack/provision/db.sh 同形(打印 SQL,由人决定在哪个库上执行)。用法与两条导出命令写在脚本头部。\n\n映射守住 DEC-040 的两条硬约束,各有单测:\n- **业务外键不迁**:宿主 Attachment.ticket_id(必填外键 + onDelete Cascade)降级为 owner_type='ticket'\n + owner_ref 两列,平台侧不建外键;\n- **retention_until 原样带过去**:级联删除迁走后,它是「宿主忘了调删除接口」时唯一兜底的东西。\n另外宿主出现未登记的状态值时落 PENDING 并在对账里单列 unmappedStatuses——**不猜**。\n\nSQL 幂等且不倒退:ON CONFLICT (tenant_id, file_id) DO UPDATE 只覆盖宿主侧的事实列,\n**不覆盖 scan_attempts / purged_at / purge_***(重跑不该把平台已推进的清理进度倒回宿主快照那一刻);\n按租户切分并先 set_config,FORCE RLS 下不设租户一行也写不进去。\n\n对账:行数 + sha256 逐条 + 状态分布;balanced 只在「不缺行且摘要逐条一致」时为真,不平退出码 1。\n**不看 storage_ref**——迁移不搬字节,对象仍在同一个桶里。\n\n端到端实跑过(合成 1 行,跑完已删,表回到 0 行):生成的 SQL 在 dev 平台库真表上 INSERT 0 1 / COMMIT,\n导出目标侧对账判平(源 1 / 目标 1、sha256 一致),目标为空时判不平且退出 1。\n模块单测 31 例通过 / 1 跳过(+9);check:modules / check:module-imports / check:stub-surface / check:pins 均 passed。\n\n**没做也不该由我做的**:真实数据迁移、宿主改调平台端点、级联删除语义的宿主侧改造——那些落在工单仓,\n归该仓 Owner;本仓这侧的可执行面到此齐备。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/3b55095e3aac481fdce7fde36f0dcc24309d5ef4","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-19T06:16:30-07:00","added":["runtime/modules/public-file/scripts/migrate-from-host.mjs","runtime/modules/public-file/src/migration/from-host.test.ts","runtime/modules/public-file/src/migration/from-host.ts"],"removed":[],"modified":["runtime/modules/public-file/package.json"]}],"total_commits":0,"head_commit":{"id":"3b55095e3aac481fdce7fde36f0dcc24309d5ef4","message":"feat(modules): public-file 宿主数据迁移与对账工具(DEC-040 实施工作包第 2—3 步的可执行面)\n\n**不连任何库**:源库在工单仓(另一个 Owner 的环境),目标库在平台,两边凭据不该压进一个进程。\n工具做的是「生成幂等 SQL + 逐条对账」,导出与执行由操作者各自用 psql 完成——与仓里\nstack/provision/db.sh 同形(打印 SQL,由人决定在哪个库上执行)。用法与两条导出命令写在脚本头部。\n\n映射守住 DEC-040 的两条硬约束,各有单测:\n- **业务外键不迁**:宿主 Attachment.ticket_id(必填外键 + onDelete Cascade)降级为 owner_type='ticket'\n + owner_ref 两列,平台侧不建外键;\n- **retention_until 原样带过去**:级联删除迁走后,它是「宿主忘了调删除接口」时唯一兜底的东西。\n另外宿主出现未登记的状态值时落 PENDING 并在对账里单列 unmappedStatuses——**不猜**。\n\nSQL 幂等且不倒退:ON CONFLICT (tenant_id, file_id) DO UPDATE 只覆盖宿主侧的事实列,\n**不覆盖 scan_attempts / purged_at / purge_***(重跑不该把平台已推进的清理进度倒回宿主快照那一刻);\n按租户切分并先 set_config,FORCE RLS 下不设租户一行也写不进去。\n\n对账:行数 + sha256 逐条 + 状态分布;balanced 只在「不缺行且摘要逐条一致」时为真,不平退出码 1。\n**不看 storage_ref**——迁移不搬字节,对象仍在同一个桶里。\n\n端到端实跑过(合成 1 行,跑完已删,表回到 0 行):生成的 SQL 在 dev 平台库真表上 INSERT 0 1 / COMMIT,\n导出目标侧对账判平(源 1 / 目标 1、sha256 一致),目标为空时判不平且退出 1。\n模块单测 31 例通过 / 1 跳过(+9);check:modules / check:module-imports / check:stub-surface / check:pins 均 passed。\n\n**没做也不该由我做的**:真实数据迁移、宿主改调平台端点、级联删除语义的宿主侧改造——那些落在工单仓,\n归该仓 Owner;本仓这侧的可执行面到此齐备。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/3b55095e3aac481fdce7fde36f0dcc24309d5ef4","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-19T06:16:30-07:00","added":["runtime/modules/public-file/scripts/migrate-from-host.mjs","runtime/modules/public-file/src/migration/from-host.test.ts","runtime/modules/public-file/src/migration/from-host.ts"],"removed":[],"modified":["runtime/modules/public-file/package.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":24168,"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":44,"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-19T21:12:48+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
|
30
|
1789823913
|
1789824033
|
0
|
1789823887
|
1789824076
|
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
|
|
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
|
|
23594
|
feat(metrics): 新增指标契约复核
|
105
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
f76fa1f553ada89174b9b59a934711373396a1f5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"f76fa1f553ada89174b9b59a934711373396a1f5","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"f76fa1f553ada89174b9b59a934711373396a1f5","message":"feat(metrics): 新增指标契约复核\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/f76fa1f553ada89174b9b59a934711373396a1f5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/metric-contract-blueprint.md","packages/contracts/src/metric-contract.test.ts","packages/contracts/src/metric-contract.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"399e265e2c0054d3c9ebc58b2551268b1b6d68ce","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/399e265e2c0054d3c9ebc58b2551268b1b6d68ce","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"544a89bfd291ba3ecfc3d7b7008fa1d6952c0850","message":"feat: 平台身份重绑定 data-analytics(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/544a89bfd291ba3ecfc3d7b7008fa1d6952c0850","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["docs/framework-migration.md","products/juhai.analytics/README.md","products/juhai.analytics/acceptance/juhai.analytics.order.acceptance.mjs","products/juhai.analytics/migrations/juhai.analytics.order/20260826090000_create_orders.sql","products/juhai.analytics/migrations/juhai.analytics.order/20260826091000_create_order_events.sql","products/juhai.analytics/package.json","products/juhai.analytics/product.manifest.json","products/juhai.analytics/src/contracts.ts","products/juhai.analytics/src/fastify.ts","products/juhai.analytics/src/host.ts","products/juhai.analytics/src/index.ts","products/juhai.analytics/src/manifest.ts","products/juhai.analytics/src/nestjs.ts","products/juhai.analytics/src/order-repository.ts","products/juhai.analytics/src/tools.ts","products/juhai.analytics/src/web.tsx","products/juhai.analytics/test/os-host.runtime.test.ts","products/juhai.analytics/tsconfig.os-host.json","products/juhai.analytics/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"1f25e1e1ae1cc7be1f0964f70aea4215a023d717","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/1f25e1e1ae1cc7be1f0964f70aea4215a023d717","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"418f29cd598d8d101563ed02bfe7e96503cb6ee4","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/418f29cd598d8d101563ed02bfe7e96503cb6ee4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:39-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"f76fa1f553ada89174b9b59a934711373396a1f5","message":"feat(metrics): 新增指标契约复核\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/f76fa1f553ada89174b9b59a934711373396a1f5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/metric-contract-blueprint.md","packages/contracts/src/metric-contract.test.ts","packages/contracts/src/metric-contract.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":105,"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":"data-analytics","full_name":"luoanwu/data-analytics","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analytics/languages","html_url":"https://gitea.g-hi.com/luoanwu/data-analytics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analytics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/data-analytics.git","clone_url":"https://gitea.g-hi.com/luoanwu/data-analytics.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-01T21:58:11+08:00","updated_at":"2026-09-01T21:59:45+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788278840
|
1788279540
|
0
|
1788271185
|
1788373230
|
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
|
|
24387
|
feat(mcp): expose authenticated HTTP control plane
|
116
|
5
|
platform.yml
|
264
|
5
|
0
|
refs/heads/main
|
a22287798200332c0fc47875259eced65940906a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"eb6e4c62e8a43364751f05aea17777934c25142c","after":"a22287798200332c0fc47875259eced65940906a","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/eb6e4c62e8a43364751f05aea17777934c25142c...a22287798200332c0fc47875259eced65940906a","commits":[{"id":"a22287798200332c0fc47875259eced65940906a","message":"feat(mcp): expose authenticated HTTP control plane\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a22287798200332c0fc47875259eced65940906a","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-23T04:15:33-07:00","added":["runtime/apps/mcp/src/http-server.ts","runtime/apps/mcp/src/http.test.ts","runtime/apps/mcp/src/http.ts"],"removed":[],"modified":["docs/domain/mcp-access-blueprint.md","docs/domain/mcp-tool-consumers.md","runtime/apps/mcp/README.md","runtime/apps/mcp/package.json","runtime/apps/mcp/scripts/tool-contracts.mjs","runtime/apps/mcp/src/config.ts","runtime/apps/mcp/src/gateway.ts","runtime/apps/mcp/src/server.ts","runtime/apps/mcp/tool-contracts.json","runtime/clients/identity/src/index.test.ts","runtime/clients/identity/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"a22287798200332c0fc47875259eced65940906a","message":"feat(mcp): expose authenticated HTTP control plane\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a22287798200332c0fc47875259eced65940906a","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-23T04:15:33-07:00","added":["runtime/apps/mcp/src/http-server.ts","runtime/apps/mcp/src/http.test.ts","runtime/apps/mcp/src/http.ts"],"removed":[],"modified":["docs/domain/mcp-access-blueprint.md","docs/domain/mcp-tool-consumers.md","runtime/apps/mcp/README.md","runtime/apps/mcp/package.json","runtime/apps/mcp/scripts/tool-contracts.mjs","runtime/apps/mcp/src/config.ts","runtime/apps/mcp/src/gateway.ts","runtime/apps/mcp/src/server.ts","runtime/apps/mcp/tool-contracts.json","runtime/clients/identity/src/index.test.ts","runtime/clients/identity/src/index.ts"]},"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":35226,"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":45,"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-23T19:15:57+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1790162305
|
1790162365
|
0
|
1790162232
|
1790163298
|
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
|
|
23518
|
feat(marketing): add HI Atelier 4K poster series
|
57
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
ba48645a4237735976c13184c3aac435bc868949
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","after":"ba48645a4237735976c13184c3aac435bc868949","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/43fb473a0f44228eb0ac2dc41e920e3e5ab523b5...ba48645a4237735976c13184c3aac435bc868949","commits":[{"id":"ba48645a4237735976c13184c3aac435bc868949","message":"feat(marketing): add HI Atelier 4K poster series\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ba48645a4237735976c13184c3aac435bc868949","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T07:05:38-07:00","added":["output/hi-atelier-posters-4k/backgrounds/poster-01-brand-standard.png","output/hi-atelier-posters-4k/backgrounds/poster-02-dual-mode.png","output/hi-atelier-posters-4k/backgrounds/poster-03-storyboard-video.png","output/hi-atelier-posters-4k/backgrounds/poster-04-quality-delivery.png","output/hi-atelier-posters-4k/final/01-brand-standard-4k.png","output/hi-atelier-posters-4k/final/02-dual-mode-4k.png","output/hi-atelier-posters-4k/final/03-story-to-screen-4k.png","output/hi-atelier-posters-4k/final/04-proof-first-delivery-4k.png","output/hi-atelier-posters-4k/final/contact-sheet.jpg","output/hi-atelier-posters-4k/manifest.json","output/hi-atelier-posters-4k/provenance.md","output/hi-atelier-posters-4k/render_posters.py"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/startup-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"ba48645a4237735976c13184c3aac435bc868949","message":"feat(marketing): add HI Atelier 4K poster series\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ba48645a4237735976c13184c3aac435bc868949","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T07:05:38-07:00","added":["output/hi-atelier-posters-4k/backgrounds/poster-01-brand-standard.png","output/hi-atelier-posters-4k/backgrounds/poster-02-dual-mode.png","output/hi-atelier-posters-4k/backgrounds/poster-03-storyboard-video.png","output/hi-atelier-posters-4k/backgrounds/poster-04-quality-delivery.png","output/hi-atelier-posters-4k/final/01-brand-standard-4k.png","output/hi-atelier-posters-4k/final/02-dual-mode-4k.png","output/hi-atelier-posters-4k/final/03-story-to-screen-4k.png","output/hi-atelier-posters-4k/final/04-proof-first-delivery-4k.png","output/hi-atelier-posters-4k/final/contact-sheet.jpg","output/hi-atelier-posters-4k/manifest.json","output/hi-atelier-posters-4k/provenance.md","output/hi-atelier-posters-4k/render_posters.py"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/startup-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":13414,"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-24T17:19:31+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1787581007
|
1787581098
|
0
|
1787581007
|
1787581098
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23963
|
feat(knowledge): harden auth and knowledge indexin feat(knowledge): harden auth and knowledge indexing retry path...
|
84
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
558e30bac2666ebe08fed4d2649e433638ead6c6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","after":"558e30bac2666ebe08fed4d2649e433638ead6c6","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d...558e30bac2666ebe08fed4d2649e433638ead6c6","commits":[{"id":"558e30bac2666ebe08fed4d2649e433638ead6c6","message":"feat(knowledge): harden auth and knowledge indexing retry path\n\n- packages/auth: expand JWT verification and trust-boundary handling\n with matching acceptance tests on both fastify and nestjs backends\n- knowledge indexing: add retry/backoff handling across\n knowledge-indexer, knowledge-retrieval and products/juhai.knowledgecloud\n- governance: tighten check-auth-governance, check-knowledge-index-governance,\n check-os-product and check-ui-acceptance gates\n- refresh reports/*.latest.json evidence\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/558e30bac2666ebe08fed4d2649e433638ead6c6","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-14T19:51:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/knowledge/knowledge-indexer.ts","apps/api-fastify/test/auth.jwt.acceptance.test.ts","apps/api-fastify/test/knowledge-index.retry.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/knowledge/knowledge-index.service.ts","apps/api-nestjs/test/auth.jwt.acceptance.test.ts","apps/api-nestjs/test/knowledge-index.retry.test.ts","compose.production.yml","docs/domain/knowledge-cloud-blueprint.md","docs/governance-experience.md","docs/production-operations.md","package.json","packages/auth/src/auth.test.ts","packages/auth/src/index.ts","packages/contracts/src/knowledge-index.test.ts","packages/contracts/src/knowledge.ts","packages/knowledge-retrieval/src/indexing.test.ts","packages/knowledge-retrieval/src/indexing.ts","products/juhai.knowledgecloud/src/indexing.ts","reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/baseline.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","scripts/check-auth-governance.mjs","scripts/check-container-acceptance.mjs","scripts/check-knowledge-index-governance.mjs","scripts/check-os-product.mjs","scripts/check-ui-acceptance.mjs","turbo.json"]}],"total_commits":0,"head_commit":{"id":"558e30bac2666ebe08fed4d2649e433638ead6c6","message":"feat(knowledge): harden auth and knowledge indexing retry path\n\n- packages/auth: expand JWT verification and trust-boundary handling\n with matching acceptance tests on both fastify and nestjs backends\n- knowledge indexing: add retry/backoff handling across\n knowledge-indexer, knowledge-retrieval and products/juhai.knowledgecloud\n- governance: tighten check-auth-governance, check-knowledge-index-governance,\n check-os-product and check-ui-acceptance gates\n- refresh reports/*.latest.json evidence\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/558e30bac2666ebe08fed4d2649e433638ead6c6","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-14T19:51:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/knowledge/knowledge-indexer.ts","apps/api-fastify/test/auth.jwt.acceptance.test.ts","apps/api-fastify/test/knowledge-index.retry.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/knowledge/knowledge-index.service.ts","apps/api-nestjs/test/auth.jwt.acceptance.test.ts","apps/api-nestjs/test/knowledge-index.retry.test.ts","compose.production.yml","docs/domain/knowledge-cloud-blueprint.md","docs/governance-experience.md","docs/production-operations.md","package.json","packages/auth/src/auth.test.ts","packages/auth/src/index.ts","packages/contracts/src/knowledge-index.test.ts","packages/contracts/src/knowledge.ts","packages/knowledge-retrieval/src/indexing.test.ts","packages/knowledge-retrieval/src/indexing.ts","products/juhai.knowledgecloud/src/indexing.ts","reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/baseline.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","scripts/check-auth-governance.mjs","scripts/check-container-acceptance.mjs","scripts/check-knowledge-index-governance.mjs","scripts/check-os-product.mjs","scripts/check-ui-acceptance.mjs","turbo.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":1320,"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-08-27T21:17:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1789441251
|
1789441278
|
0
|
1789440865
|
1789441280
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23529
|
feat(knowledge): add governed hybrid evidence retr feat(knowledge): add governed hybrid evidence retrieval...
|
84
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
f2a674de3343d5031dee856edd261194709b727f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"f2a674de3343d5031dee856edd261194709b727f","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"f2a674de3343d5031dee856edd261194709b727f","message":"feat(knowledge): add governed hybrid evidence retrieval\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/f2a674de3343d5031dee856edd261194709b727f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:39:32-07:00","added":["apps/api-fastify/prisma/migrations/20260826010000_add_knowledge_hybrid_retrieval/migration.sql","apps/api-nestjs/prisma/migrations/20260826010000_add_knowledge_hybrid_retrieval/migration.sql","packages/contracts/src/knowledge-retrieval.test.ts","packages/knowledge-retrieval/package.json","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts","packages/knowledge-retrieval/tsconfig.json","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260826030000_add_hybrid_evidence_retrieval.sql","products/juhai.knowledgecloud/src/retrieval.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/knowledge.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/knowledge.integration.test.ts","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","kernel.products.json","packages/contracts/src/knowledge.ts","pnpm-lock.yaml","products/juhai.knowledgecloud/acceptance/juhai.knowledgecloud.closed-loop.acceptance.mjs","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/tools.ts","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/os-product-live.latest.json","reports/os-product.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-os-product.mjs"]},{"id":"e60d772bc7fba6aba92ee6becbeb1b68b2b28849","message":"feat: establish governed knowledge cloud product\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/e60d772bc7fba6aba92ee6becbeb1b68b2b28849","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:06:03-07:00","added":["apps/api-fastify/prisma/migrations/20260825180000_add_knowledge_cloud_core/migration.sql","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/test/knowledge.integration.test.ts","apps/api-nestjs/prisma/migrations/20260825180000_add_knowledge_cloud_core/migration.sql","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.module.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/test/knowledge.integration.test.ts","apps/web/src/features/knowledge/api/knowledge-api.ts","apps/web/src/features/knowledge/components/KnowledgeWorkbench.tsx","apps/web/src/features/knowledge/hooks/use-knowledge.ts","docs/adr/0010-os-loadable-enterprise-knowledge-product.md","docs/domain/knowledge-cloud-blueprint.md","kernel.products.json","packages/contracts/src/knowledge.ts","products/juhai.knowledgecloud/README.md","products/juhai.knowledgecloud/acceptance/juhai.knowledgecloud.closed-loop.acceptance.mjs","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260825190000_create_knowledge_cloud.sql","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/product.manifest.json","products/juhai.knowledgecloud/src/access.ts","products/juhai.knowledgecloud/src/contracts.ts","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/manifest.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/tools.ts","products/juhai.knowledgecloud/src/web.tsx","reports/os-product-live.latest.json","reports/os-product.latest.json","scripts/check-os-product.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.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/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","docs/README.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/framework-migration.md","governance.registry.json","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.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","scripts/check-docs-truth.mjs","scripts/check-migrations.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"64bf2720bce803978337aeabbadf1a88d732fa43","message":"chore: bind static governance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/64bf2720bce803978337aeabbadf1a88d732fa43","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T08:18:01-07:00","added":[],"removed":[],"modified":["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-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"7322783bb7233c3c586f15cb33c7963f0ba605ce","message":"docs: record local framework acceptance\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/7322783bb7233c3c586f15cb33c7963f0ba605ce","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T08:17:40-07:00","added":["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"],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md"]},{"id":"512b11bc5047f7776f3dde09b0f7344982afd354","message":"chore: migrate governed framework to juhai knowledge cloud\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/512b11bc5047f7776f3dde09b0f7344982afd354","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T08:08:02-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.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-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/20260818090000_outbox_replay_cursor/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/connection-registry.service.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.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/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/framework-migration.md","docs/governance-experience.md","docs/migration-playbook.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","governance.registry.json","governance.registry.schema.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime-command.test.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/replay.test.ts","packages/contracts/src/replay.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/subscription.test.ts","packages/contracts/src/subscription.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"f2a674de3343d5031dee856edd261194709b727f","message":"feat(knowledge): add governed hybrid evidence retrieval\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/f2a674de3343d5031dee856edd261194709b727f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:39:32-07:00","added":["apps/api-fastify/prisma/migrations/20260826010000_add_knowledge_hybrid_retrieval/migration.sql","apps/api-nestjs/prisma/migrations/20260826010000_add_knowledge_hybrid_retrieval/migration.sql","packages/contracts/src/knowledge-retrieval.test.ts","packages/knowledge-retrieval/package.json","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts","packages/knowledge-retrieval/tsconfig.json","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260826030000_add_hybrid_evidence_retrieval.sql","products/juhai.knowledgecloud/src/retrieval.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/knowledge.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/knowledge.integration.test.ts","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","kernel.products.json","packages/contracts/src/knowledge.ts","pnpm-lock.yaml","products/juhai.knowledgecloud/acceptance/juhai.knowledgecloud.closed-loop.acceptance.mjs","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/tools.ts","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/os-product-live.latest.json","reports/os-product.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-os-product.mjs"]},"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":27,"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-08-26T09: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
|
2
|
6
|
1787708896
|
1787708917
|
0
|
1787708825
|
1787708918
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23500
|
feat(kernel): integrate governed LLM execution and feat(kernel): integrate governed LLM execution and operations UI...
|
76
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
d66fbcbb48ca0e0fc2b252b67accac472b8d800f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"d66fbcbb48ca0e0fc2b252b67accac472b8d800f","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/84afc39d2571c2e7d74673572e81fb737d36e271...d66fbcbb48ca0e0fc2b252b67accac472b8d800f","commits":[{"id":"d66fbcbb48ca0e0fc2b252b67accac472b8d800f","message":"feat(kernel): integrate governed LLM execution and operations UI\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d66fbcbb48ca0e0fc2b252b67accac472b8d800f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T23:36:38-07:00","added":["apps/api-fastify/src/modules/actor-events.service.ts","apps/api-fastify/src/modules/work/task-events.service.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/dead-letters.integration.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-nestjs/src/actors/actor-events.service.ts","apps/api-nestjs/src/work/task-events.service.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/dead-letters.integration.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/web/src/components/workbench/ActorAvatar.tsx","apps/web/src/components/workbench/ToastHost.tsx","apps/web/src/lib/ui-copy.ts","docs/domain/llm-execution-blueprint.md","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts"],"removed":[],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.module.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/triggers/triggers.controller.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/tasks.controller.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/JobsPanel.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/ConnectionCapsule.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/components/workbench/Timeline.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/journey.ts","apps/web/src/lib/types.ts","apps/web/tsconfig.json","docs/governance-experience.md","packages/contracts/src/actor.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/runtime.ts","packages/contracts/src/task.ts","packages/contracts/src/trigger.ts","packages/contracts/src/work.test.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","scripts/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs"]},{"id":"6f6027d4e97cd6dfc976f129ce62cf9e51786c1b","message":"feat(governance): C19 报告内容指纹 worktreeHash + 扫描器排除单源 scan-ignore\n\n- provenance schema v2:dirty 工作区内容指纹(跟踪 diff + 未跟踪内容哈希,clean 恒 null),\n 取材边界与 worktreeDirty 完全同源;静态子报告六字段同 run 对账,伪造 env / dirty-指纹\n 不相干 / 聚合期间内容变化 均即红;验收报告陈旧性 staleAcceptanceReports 显式记录不阻断\n (提交动作必然产生新 SHA,硬闸在 CI 干净 checkout 下恒红,判责理由见 CLAUDE.md 事实作用域)\n- 六门禁扫描器 IGNORE 表收口单源 scripts/lib/scan-ignore.mjs:.next* 前缀统一按产物豁免\n (NEXT_DIST_DIR=.next-fastify 曾被判 17 条 naming + 3 条 F7 假红);.gitignore 补 .next-*\n- 负向测试已实跑:伪造指纹 env exit1;v1 旧 schema 验收报告 schemaVersion+相干性双红\n (换 schema 必须重新出证);植入禁用词红→复原绿;植入空目录红→复原绿\n- 后续:runtime/ui 验收需在稳定树上重跑一次升级到 v2 provenance;在那之前\n check:governance 对旧 v1 验收报告红盘属预期换证语义\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/6f6027d4e97cd6dfc976f129ce62cf9e51786c1b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T22:20:41-07:00","added":["scripts/lib/scan-ignore.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","docs/governance-experience.md","scripts/check-fork-readiness.mjs","scripts/check-naming.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]},{"id":"e3696a9352f893fbdbb954f1ec03fb14185d6b53","message":"fix(e2e): Work Graph 用例断言收窄 first()(goal 默认同名双命中)+ 验收报告刷新\n\n并行会话重写 spec 时回退了 strict-mode 修复;同时刷新 clean 基线后的\nruntime(292)/ui(11) 报告。views 半成品留给并行会话,本提交不含。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/e3696a9352f893fbdbb954f1ec03fb14185d6b53","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T08:58:53-07:00","added":[],"removed":[],"modified":["apps/web/e2e/acceptance.spec.ts","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"]},{"id":"d7b2d631cf58dd9dcfcf8f2466d43680ea3ea4f3","message":"feat(workgraph): Project 实体化 + Work Graph 依赖门闸 + 读时进度(§12/§14/§103)\n\n- contracts: project.ts(createProjectSchema/ProjectDto/ProjectProgress,无百分比字段)、\n createTaskSchema.dependsOnTaskIds(max16 默认[])、project.created 事件类型\n- DB: TaskDependency(unique[tenantId,taskId,dependsOnTaskId])+ Project 表,\n 双后端同 SQL 迁移 20260825010000_workgraph_slice\n- 双后端: projects 服务(读时 groupBy 进度:total/succeeded/running/blockedByDeps)+\n Task 创建事务内依赖声明(构造性无环,坏依赖 404)+ ready 门闸\n (409 DEPENDENCIES_NOT_MET + unmet 清单,迁移事务内判定)\n- web: ProjectsPanel + 建任务表单 project/依赖选择 + useRealtime project 分支;\n 含并行会话 workbench/views 面板重构收敛(TaskCreateForm 已吸收依赖字段)\n- 验收: check 绿;check:runtime 292 tests(地板 277→292);check:ui 11 用例(地板 10→11)\n ——2026-08-19 本地实跑,PG:55447 + Redis:6397/2、/3\n- 治理: registry 登记 TaskDependency/projects 入口;CLAUDE.md 真源地图/基线表/新鲜度同步;\n 经验库 workgraph 记录(构造性无环、行为断言防 UI 重构碎测)\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d7b2d631cf58dd9dcfcf8f2466d43680ea3ea4f3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T08:55:25-07:00","added":["apps/api-fastify/prisma/migrations/20260825010000_workgraph_slice/migration.sql","apps/api-fastify/src/modules/work/projects.service.ts","apps/api-nestjs/prisma/migrations/20260825010000_workgraph_slice/migration.sql","apps/api-nestjs/src/work/projects.controller.ts","apps/api-nestjs/src/work/projects.service.ts","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/ActionErrorBanner.tsx","apps/web/src/components/workbench/AttentionInbox.tsx","apps/web/src/components/workbench/ConnectionCapsule.tsx","apps/web/src/components/workbench/EmptyState.tsx","apps/web/src/components/workbench/JourneyRail.tsx","apps/web/src/components/workbench/StateBadge.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/components/workbench/Timeline.tsx","apps/web/src/components/workbench/useTaskActions.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/journey.ts","apps/web/src/lib/state-theme.ts","packages/contracts/src/project.ts"],"removed":["apps/web/src/components/ActorsPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/RuntimeInspectorPanel.tsx","apps/web/src/components/TasksPanel.tsx","apps/web/src/components/TriggersPanel.tsx"],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/work.integration.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/src/lib/types.ts","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","packages/contracts/src/task.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"]},{"id":"2763d474f9fc47991ce52ca1f718685d04a1f2d9","message":"feat(auth): G8 持久化角色表——resolveEffectiveRole「DB 覆盖 claim」+ admin 端点 + bootstrap\n\n用户拍板三决策落地:① 生效角色 = DB 覆盖已验签 claim(可降可升、本地可吊销\nIdP 签发的角色;DB 非法值按无记录 fail-safe,claim 兜底);② 两后端对等\nadmin-only /api/roles(GET/PUT upsert/DELETE 204,admin 判定同样走生效角色)+\nAUTH_BOOTSTRAP_ADMIN=\"tenantId:subject\" 虚拟授予解鸡生蛋;③ cancel 特权闸与\napprove 同步改查生效角色(非特权事件不查 DB)。\n\n- contracts:roleAssignmentSchema / resolveEffectiveRole / isBootstrapAdmin 单源;\n subject 取 JWT sub claim(TenantAuthResult/双后端 TenantAuthContext 透传——\n 实测抓获「contracts 产出 subject 而消费端丢弃」断链,403 全链复现后修复)\n- 表:role_assignments([tenantId,subject] 唯一)+ 两侧逐字节一致迁移;\n owner-matrix 先登记后建表;registry 登记 auth 域(validation/tenant 门禁自动覆盖)\n- 验收:contracts 27/27;两后端全 auth 套件各 20/20(真实 DB,核心负向:\n claim=admin 而 DB 记 member → 403);migrations/schema/validation/write-guard/\n dual-backend/naming/fork-readiness 七门禁绿(全量 check 待伙伴会话 Projects\n 切片收敛后随快照重跑)\n- schema.prisma / registry / owner-matrix / work 路由含伙伴会话 Projects 半成品,\n 本提交不含,随其扫荡入库\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/2763d474f9fc47991ce52ca1f718685d04a1f2d9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T08:44:55-07:00","added":["apps/api-fastify/prisma/migrations/20260825000000_role_assignment/migration.sql","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/routes/roles.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260825000000_role_assignment/migration.sql","apps/api-nestjs/src/roles/roles.controller.ts","apps/api-nestjs/src/roles/roles.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/work/tasks.controller.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/tenant.ts"]}],"total_commits":0,"head_commit":{"id":"d66fbcbb48ca0e0fc2b252b67accac472b8d800f","message":"feat(kernel): integrate governed LLM execution and operations UI\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d66fbcbb48ca0e0fc2b252b67accac472b8d800f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-19T23:36:38-07:00","added":["apps/api-fastify/src/modules/actor-events.service.ts","apps/api-fastify/src/modules/work/task-events.service.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/dead-letters.integration.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-nestjs/src/actors/actor-events.service.ts","apps/api-nestjs/src/work/task-events.service.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/dead-letters.integration.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/web/src/components/workbench/ActorAvatar.tsx","apps/web/src/components/workbench/ToastHost.tsx","apps/web/src/lib/ui-copy.ts","docs/domain/llm-execution-blueprint.md","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts"],"removed":[],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.module.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/triggers/triggers.controller.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/tasks.controller.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/JobsPanel.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/ConnectionCapsule.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/components/workbench/Timeline.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/journey.ts","apps/web/src/lib/types.ts","apps/web/tsconfig.json","docs/governance-experience.md","packages/contracts/src/actor.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/runtime.ts","packages/contracts/src/task.ts","packages/contracts/src/trigger.ts","packages/contracts/src/work.test.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","scripts/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs"]},"repository":{"id":76,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":27,"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":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-08-20T14:47: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
|
1787208431
|
1787208453
|
0
|
1787208429
|
1787208455
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24616
|
feat(integration): 平台 dev 环境验收准备——C19 联调用例租户可配、dev feat(integration): 平台 dev 环境验收准备——C19 联调用例租户可配、dev E1 操作单、接缝台账记 dev 阻塞...
|
76
|
5
|
governance.yml
|
152
|
5
|
0
|
refs/heads/main
|
d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ba2eb4b48ece4515f3e5ed5cd01b4988ef9476f0","after":"d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/ba2eb4b48ece4515f3e5ed5cd01b4988ef9476f0...d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","commits":[{"id":"d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","message":"feat(integration): 平台 dev 环境验收准备——C19 联调用例租户可配、dev E1 操作单、接缝台账记 dev 阻塞\n\n用户选定控制面接入 E0 → E1、先做不依赖管理员登录的部分(2026-09-26)。\n\n- llm.usage-export.platform-e2e(两后端):企业 IdP 签发的 tenant_id 是随机 ten_…,用例写死\n tenant-c19-e2e-*,只能对假 token 的本地平台跑通。改为可用 C19_PLATFORM_E2E_TENANT_NESTJS / _FASTIFY\n 覆盖(两后端各自一个,平台读回按租户汇总),默认值不变;无平台变量时仍整组 skip(两后端各 1 skipped 实测)。\n 头注释把 azp 订正为 client_id(srv_…)并写明所需权限。\n- docs/operations/platform-dev-e1-usage-export-2026-09-26.md:dev E1 操作单——实测前提(dev 来源登记\n appId=os-usage-exporter 永远对不上 srv_ client_id;服务身份管理要人类租户管理员 token;Catalog 无 E1 枚举)、\n 登记 / 授权 / 权限 / dev env 修正、正反向验收与证据登记步骤。第 1 步须人登录,Claude 不代输密码。\n- governance/platform-integration.json:llm-usage-export 与 control-plane-mcp 的 openItems 写明 dev 阻塞\n (09-24 MCP 验收是宿主机独立进程,不在 dev 部署内)。check:app-manifest 通过。\n\ndocs-truth:assert / governance-docs / operations / naming / dual-backend / lint 通过。快照锚点前移。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","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-26T16:18:19-07:00","added":["docs/operations/platform-dev-e1-usage-export-2026-09-26.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/test/llm.usage-export.platform-e2e.test.ts","apps/api-nestjs/test/llm.usage-export.platform-e2e.test.ts","governance/platform-integration.json"]}],"total_commits":0,"head_commit":{"id":"d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","message":"feat(integration): 平台 dev 环境验收准备——C19 联调用例租户可配、dev E1 操作单、接缝台账记 dev 阻塞\n\n用户选定控制面接入 E0 → E1、先做不依赖管理员登录的部分(2026-09-26)。\n\n- llm.usage-export.platform-e2e(两后端):企业 IdP 签发的 tenant_id 是随机 ten_…,用例写死\n tenant-c19-e2e-*,只能对假 token 的本地平台跑通。改为可用 C19_PLATFORM_E2E_TENANT_NESTJS / _FASTIFY\n 覆盖(两后端各自一个,平台读回按租户汇总),默认值不变;无平台变量时仍整组 skip(两后端各 1 skipped 实测)。\n 头注释把 azp 订正为 client_id(srv_…)并写明所需权限。\n- docs/operations/platform-dev-e1-usage-export-2026-09-26.md:dev E1 操作单——实测前提(dev 来源登记\n appId=os-usage-exporter 永远对不上 srv_ client_id;服务身份管理要人类租户管理员 token;Catalog 无 E1 枚举)、\n 登记 / 授权 / 权限 / dev env 修正、正反向验收与证据登记步骤。第 1 步须人登录,Claude 不代输密码。\n- governance/platform-integration.json:llm-usage-export 与 control-plane-mcp 的 openItems 写明 dev 阻塞\n (09-24 MCP 验收是宿主机独立进程,不在 dev 部署内)。check:app-manifest 通过。\n\ndocs-truth:assert / governance-docs / operations / naming / dual-backend / lint 通过。快照锚点前移。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","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-26T16:18:19-07:00","added":["docs/operations/platform-dev-e1-usage-export-2026-09-26.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/test/llm.usage-export.platform-e2e.test.ts","apps/api-nestjs/test/llm.usage-export.platform-e2e.test.ts","governance/platform-integration.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":98654,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-27T07:19: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
|
36
|
1790464840
|
1790464850
|
0
|
1790464840
|
1790464864
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24617
|
feat(integration): 平台 dev 环境验收准备——C19 联调用例租户可配、dev feat(integration): 平台 dev 环境验收准备——C19 联调用例租户可配、dev E1 操作单、接缝台账记 dev 阻塞...
|
76
|
5
|
platform-governance.yml
|
153
|
5
|
0
|
refs/heads/main
|
d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ba2eb4b48ece4515f3e5ed5cd01b4988ef9476f0","after":"d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/ba2eb4b48ece4515f3e5ed5cd01b4988ef9476f0...d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","commits":[{"id":"d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","message":"feat(integration): 平台 dev 环境验收准备——C19 联调用例租户可配、dev E1 操作单、接缝台账记 dev 阻塞\n\n用户选定控制面接入 E0 → E1、先做不依赖管理员登录的部分(2026-09-26)。\n\n- llm.usage-export.platform-e2e(两后端):企业 IdP 签发的 tenant_id 是随机 ten_…,用例写死\n tenant-c19-e2e-*,只能对假 token 的本地平台跑通。改为可用 C19_PLATFORM_E2E_TENANT_NESTJS / _FASTIFY\n 覆盖(两后端各自一个,平台读回按租户汇总),默认值不变;无平台变量时仍整组 skip(两后端各 1 skipped 实测)。\n 头注释把 azp 订正为 client_id(srv_…)并写明所需权限。\n- docs/operations/platform-dev-e1-usage-export-2026-09-26.md:dev E1 操作单——实测前提(dev 来源登记\n appId=os-usage-exporter 永远对不上 srv_ client_id;服务身份管理要人类租户管理员 token;Catalog 无 E1 枚举)、\n 登记 / 授权 / 权限 / dev env 修正、正反向验收与证据登记步骤。第 1 步须人登录,Claude 不代输密码。\n- governance/platform-integration.json:llm-usage-export 与 control-plane-mcp 的 openItems 写明 dev 阻塞\n (09-24 MCP 验收是宿主机独立进程,不在 dev 部署内)。check:app-manifest 通过。\n\ndocs-truth:assert / governance-docs / operations / naming / dual-backend / lint 通过。快照锚点前移。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","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-26T16:18:19-07:00","added":["docs/operations/platform-dev-e1-usage-export-2026-09-26.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/test/llm.usage-export.platform-e2e.test.ts","apps/api-nestjs/test/llm.usage-export.platform-e2e.test.ts","governance/platform-integration.json"]}],"total_commits":0,"head_commit":{"id":"d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","message":"feat(integration): 平台 dev 环境验收准备——C19 联调用例租户可配、dev E1 操作单、接缝台账记 dev 阻塞\n\n用户选定控制面接入 E0 → E1、先做不依赖管理员登录的部分(2026-09-26)。\n\n- llm.usage-export.platform-e2e(两后端):企业 IdP 签发的 tenant_id 是随机 ten_…,用例写死\n tenant-c19-e2e-*,只能对假 token 的本地平台跑通。改为可用 C19_PLATFORM_E2E_TENANT_NESTJS / _FASTIFY\n 覆盖(两后端各自一个,平台读回按租户汇总),默认值不变;无平台变量时仍整组 skip(两后端各 1 skipped 实测)。\n 头注释把 azp 订正为 client_id(srv_…)并写明所需权限。\n- docs/operations/platform-dev-e1-usage-export-2026-09-26.md:dev E1 操作单——实测前提(dev 来源登记\n appId=os-usage-exporter 永远对不上 srv_ client_id;服务身份管理要人类租户管理员 token;Catalog 无 E1 枚举)、\n 登记 / 授权 / 权限 / dev env 修正、正反向验收与证据登记步骤。第 1 步须人登录,Claude 不代输密码。\n- governance/platform-integration.json:llm-usage-export 与 control-plane-mcp 的 openItems 写明 dev 阻塞\n (09-24 MCP 验收是宿主机独立进程,不在 dev 部署内)。check:app-manifest 通过。\n\ndocs-truth:assert / governance-docs / operations / naming / dual-backend / lint 通过。快照锚点前移。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d7c7cd6e7d0f2f5c74b5f851fe0e93f2e4daf445","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-26T16:18:19-07:00","added":["docs/operations/platform-dev-e1-usage-export-2026-09-26.md"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/test/llm.usage-export.platform-e2e.test.ts","apps/api-nestjs/test/llm.usage-export.platform-e2e.test.ts","governance/platform-integration.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":98654,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-27T07:19: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
|
8
|
1790464850
|
1790464858
|
0
|
1790464841
|
1790464864
|
|
|
0
|
Edit
Delete
|
|
25920
|
feat(integration): add authorized EES execution re feat(integration): add authorized EES execution return adapter...
|
76
|
5
|
governance.yml
|
196
|
5
|
0
|
refs/heads/main
|
53c3e96f45df18b0e32d08e9a280cf6e515ab757
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cbf9656e121f06e0fb74deb70bced3fb1304bf93","after":"53c3e96f45df18b0e32d08e9a280cf6e515ab757","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/cbf9656e121f06e0fb74deb70bced3fb1304bf93...53c3e96f45df18b0e32d08e9a280cf6e515ab757","commits":[{"id":"53c3e96f45df18b0e32d08e9a280cf6e515ab757","message":"feat(integration): add authorized EES execution return adapter\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/53c3e96f45df18b0e32d08e9a280cf6e515ab757","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-16T09:01:39-07:00","added":["docs/integration/ees-execution-return.md","scripts/lib/ees-execution-return.mjs","scripts/lib/ees-execution-return.test.mjs"],"removed":[],"modified":["CLAUDE.md","package.json"]}],"total_commits":0,"head_commit":{"id":"53c3e96f45df18b0e32d08e9a280cf6e515ab757","message":"feat(integration): add authorized EES execution return adapter\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/53c3e96f45df18b0e32d08e9a280cf6e515ab757","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-16T09:01:39-07:00","added":["docs/integration/ees-execution-return.md","scripts/lib/ees-execution-return.mjs","scripts/lib/ees-execution-return.test.mjs"],"removed":[],"modified":["CLAUDE.md","package.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":106573,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-10-16T10:02:28+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
36
|
1792166525
|
1792166536
|
0
|
1792166524
|
1792166550
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25921
|
feat(integration): add authorized EES execution re feat(integration): add authorized EES execution return adapter...
|
76
|
5
|
platform-governance.yml
|
197
|
5
|
0
|
refs/heads/main
|
53c3e96f45df18b0e32d08e9a280cf6e515ab757
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cbf9656e121f06e0fb74deb70bced3fb1304bf93","after":"53c3e96f45df18b0e32d08e9a280cf6e515ab757","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/cbf9656e121f06e0fb74deb70bced3fb1304bf93...53c3e96f45df18b0e32d08e9a280cf6e515ab757","commits":[{"id":"53c3e96f45df18b0e32d08e9a280cf6e515ab757","message":"feat(integration): add authorized EES execution return adapter\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/53c3e96f45df18b0e32d08e9a280cf6e515ab757","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-16T09:01:39-07:00","added":["docs/integration/ees-execution-return.md","scripts/lib/ees-execution-return.mjs","scripts/lib/ees-execution-return.test.mjs"],"removed":[],"modified":["CLAUDE.md","package.json"]}],"total_commits":0,"head_commit":{"id":"53c3e96f45df18b0e32d08e9a280cf6e515ab757","message":"feat(integration): add authorized EES execution return adapter\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/53c3e96f45df18b0e32d08e9a280cf6e515ab757","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-16T09:01:39-07:00","added":["docs/integration/ees-execution-return.md","scripts/lib/ees-execution-return.mjs","scripts/lib/ees-execution-return.test.mjs"],"removed":[],"modified":["CLAUDE.md","package.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":106573,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-10-16T10:02:28+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1792166536
|
1792166545
|
0
|
1792166524
|
1792166551
|
|
|
0
|
Edit
Delete
|
|
23591
|
feat(ingress): 新增入口准入规划
|
103
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","message":"feat(ingress): 新增入口准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ingress/ingress-admission.service.ts","docs/domain/ingress-context-blueprint.md","packages/contracts/src/ingress-admission-planner.test.ts","packages/contracts/src/ingress-admission-planner.ts","packages/contracts/src/ingress-context.test.ts","packages/contracts/src/ingress-context.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"a4864b772d58e60a37218a8e2b456a3ab9f789b0","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/a4864b772d58e60a37218a8e2b456a3ab9f789b0","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"184d79f7bbf320b292a3de4a0f977aa8d673528b","message":"feat: 平台身份重绑定 app-gateway(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/184d79f7bbf320b292a3de4a0f977aa8d673528b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:16-07:00","added":["docs/framework-migration.md","products/juhai.appgateway/README.md","products/juhai.appgateway/acceptance/juhai.appgateway.order.acceptance.mjs","products/juhai.appgateway/migrations/juhai.appgateway.order/20260826090000_create_orders.sql","products/juhai.appgateway/migrations/juhai.appgateway.order/20260826091000_create_order_events.sql","products/juhai.appgateway/package.json","products/juhai.appgateway/product.manifest.json","products/juhai.appgateway/src/contracts.ts","products/juhai.appgateway/src/fastify.ts","products/juhai.appgateway/src/host.ts","products/juhai.appgateway/src/index.ts","products/juhai.appgateway/src/manifest.ts","products/juhai.appgateway/src/nestjs.ts","products/juhai.appgateway/src/order-repository.ts","products/juhai.appgateway/src/tools.ts","products/juhai.appgateway/src/web.tsx","products/juhai.appgateway/test/os-host.runtime.test.ts","products/juhai.appgateway/tsconfig.os-host.json","products/juhai.appgateway/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"19e1119a75f21f174cdb1fc66b4d1da0dca08de7","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/19e1119a75f21f174cdb1fc66b4d1da0dca08de7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"7ea8a1b88a87d4d7d05d8e9972a7c225461e18b6","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/7ea8a1b88a87d4d7d05d8e9972a7c225461e18b6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","message":"feat(ingress): 新增入口准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ingress/ingress-admission.service.ts","docs/domain/ingress-context-blueprint.md","packages/contracts/src/ingress-admission-planner.test.ts","packages/contracts/src/ingress-admission-planner.ts","packages/contracts/src/ingress-context.test.ts","packages/contracts/src/ingress-context.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":103,"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":"app-gateway","full_name":"luoanwu/app-gateway","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-gateway/languages","html_url":"https://gitea.g-hi.com/luoanwu/app-gateway","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-gateway","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/app-gateway.git","clone_url":"https://gitea.g-hi.com/luoanwu/app-gateway.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-01T21:58:07+08:00","updated_at":"2026-09-01T21:59:45+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788278542
|
1788279240
|
0
|
1788271185
|
1788373230
|
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
|