| event_payload |
{"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"}}... |