|
24027
|
chore(reports): CHG-004 应用后十份报告回绑 @ d88c3f1
|
116
|
5
|
platform.yml
|
88
|
5
|
0
|
refs/heads/main
|
b994fb35767d4bf107edd51dcbd5b6366d032ca2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bf9f835d9c1c1dbc594212999b0e61fb036c9942","after":"b994fb35767d4bf107edd51dcbd5b6366d032ca2","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/bf9f835d9c1c1dbc594212999b0e61fb036c9942...b994fb35767d4bf107edd51dcbd5b6366d032ca2","commits":[{"id":"b994fb35767d4bf107edd51dcbd5b6366d032ca2","message":"chore(reports): CHG-004 应用后十份报告回绑 @ d88c3f1\n\nfacts(Catalog 11 / 候选 5)、catalog / catalog:drift、caddy、fixtures 189/189、migration-decs、module-imports、工作台两份快照(catalog 7/7 映射 0 冲突);check:evidence partial(余 9 份既有 warn 级)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/b994fb35767d4bf107edd51dcbd5b6366d032ca2","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-17T08:19:51-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json"]},{"id":"d88c3f1636f2a19dd3a2d4f4ab61158ce2fa4e51","message":"feat(contracts): 应用 CHG-004 阶段 2(重基线到活跃契约)——10 条平台事实登记为 draft、7 实体、5 份模块 AppManifest、5 份候选 OpenAPI\n\n决策批次 2026-09-16 A-7 批准。simulate-chg-004 增 --contracts=active / --apply(镜像活跃契约、跳过已落地的 CHG-001—003),镜像验证 passed(check 0 错误、17 apps / 168 entities / 11 facts、schema-compatibility 11/11、impact 257 节点 / 297 边、测试 283/283)后同一组 ops 应用到活跃契约:46 个文件(15 份事实 Schema + party-canonical-ids、5 份 AppManifest、2 份 AppManifest 补丁、entities +7、facts +10、decisions 11 项 source 改指、compatibility baseline +10 与 10 份不可变快照、5 份候选 OpenAPI、4 份测试锚点)。5 条业务域事实保持 deferred(候选目录保留)。\ncompanion:删除 10 条已登记候选;七模块 src/facts/facts.json 相应 produces 改 registered;重基线两处:① validators.test 的 AppManifest 文件数锚点 12 → 17(该测试晚于冻结基线);② 10 条新登记事实里已批准的 blocked_by 按 CHG-007 方案 B 迁到 decided_by(D5 STALE_FACT_BLOCK 9 → 0;TenantProvisioned 仍 blocked_by DEC-039),maturity 一律 draft 不变。\n应用后:contracts 283/283、check:generated 一致、check:facts 16(Catalog 11 / 候选 5)、check:catalog 一致、drift 0、fixtures 189/189、governance 265/265、domain-layer 回到 13 条(与应用前相同)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/d88c3f1636f2a19dd3a2d4f4ab61158ce2fa4e51","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-17T08:19:31-07:00","added":["contracts/apps/ai-governance.draft.json","contracts/apps/enterprise-audit.draft.json","contracts/apps/enterprise-fact-backbone.draft.json","contracts/apps/organization-scope.draft.json","contracts/apps/secret-service-identity.draft.json","contracts/compatibility/baselines/0.1.0-proposed/AiActionGoverned.v1.json","contracts/compatibility/baselines/0.1.0-proposed/AuditAppended.v1.json","contracts/compatibility/baselines/0.1.0-proposed/FactPersisted.v1.json","contracts/compatibility/baselines/0.1.0-proposed/GrantChanged.v1.json","contracts/compatibility/baselines/0.1.0-proposed/PermissionInvalidated.v1.json","contracts/compatibility/baselines/0.1.0-proposed/ScopeSnapshotPublished.v1.json","contracts/compatibility/baselines/0.1.0-proposed/ServiceCredentialIssued.v1.json","contracts/compatibility/baselines/0.1.0-proposed/ServiceCredentialRevoked.v1.json","contracts/compatibility/baselines/0.1.0-proposed/SessionRevoked.v1.json","contracts/compatibility/baselines/0.1.0-proposed/TenantProvisioned.v1.json","contracts/contracts/ai-gateway-api.v1.openapi.json","contracts/contracts/audit-api.v1.openapi.json","contracts/contracts/credential-lease-api.v1.openapi.json","contracts/contracts/fact-intake-api.v1.openapi.json","contracts/contracts/scope-api.v1.openapi.json","contracts/schemas/facts/AiActionGoverned.v1.json","contracts/schemas/facts/AuditAppended.v1.json","contracts/schemas/facts/CustomerAccountOpened.v1.json","contracts/schemas/facts/FactPersisted.v1.json","contracts/schemas/facts/GrantChanged.v1.json","contracts/schemas/facts/OrganizationUnitMoved.v1.json","contracts/schemas/facts/PermissionInvalidated.v1.json","contracts/schemas/facts/ScopeSnapshotPublished.v1.json","contracts/schemas/facts/ServiceCredentialIssued.v1.json","contracts/schemas/facts/ServiceCredentialRevoked.v1.json","contracts/schemas/facts/SessionRevoked.v1.json","contracts/schemas/facts/SiteOperatorChanged.v1.json","contracts/schemas/facts/StoreOrgAssignmentChanged.v1.json","contracts/schemas/facts/TenantEnterpriseVerified.v1.json","contracts/schemas/facts/TenantProvisioned.v1.json","contracts/schemas/party-canonical-ids.v1.schema.json"],"removed":["contracts/candidates/facts/AiActionGoverned.v1.json","contracts/candidates/facts/AuditAppended.v1.json","contracts/candidates/facts/FactPersisted.v1.json","contracts/candidates/facts/GrantChanged.v1.json","contracts/candidates/facts/PermissionInvalidated.v1.json","contracts/candidates/facts/ScopeSnapshotPublished.v1.json","contracts/candidates/facts/ServiceCredentialIssued.v1.json","contracts/candidates/facts/ServiceCredentialRevoked.v1.json","contracts/candidates/facts/SessionRevoked.v1.json","contracts/candidates/facts/TenantProvisioned.v1.json"],"modified":["contracts/apps/enterprise-idp.draft.json","contracts/apps/permission-platform.draft.json","contracts/catalogs/decisions.json","contracts/catalogs/entities.json","contracts/catalogs/facts.json","contracts/compatibility/baseline.proposed.json","contracts/test/governance-linter.test.mjs","contracts/test/impact-graph.test.mjs","contracts/test/schema-compatibility.test.mjs","contracts/test/validators.test.mjs","runtime/modules/ai-gateway/src/facts/facts.json","runtime/modules/audit/src/facts/facts.json","runtime/modules/credential/src/facts/facts.json","runtime/modules/fact/src/facts/facts.json","runtime/modules/identity/src/facts/facts.json","runtime/modules/permission/src/facts/facts.json","runtime/modules/scope/src/facts/facts.json"]}],"total_commits":0,"head_commit":{"id":"b994fb35767d4bf107edd51dcbd5b6366d032ca2","message":"chore(reports): CHG-004 应用后十份报告回绑 @ d88c3f1\n\nfacts(Catalog 11 / 候选 5)、catalog / catalog:drift、caddy、fixtures 189/189、migration-decs、module-imports、工作台两份快照(catalog 7/7 映射 0 冲突);check:evidence partial(余 9 份既有 warn 级)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/b994fb35767d4bf107edd51dcbd5b6366d032ca2","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-17T08:19:51-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.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":16221,"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-17T23:09:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1789658395
|
1789658432
|
0
|
1789658394
|
1789658473
|
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
|
|
24029
|
chore(reports): CHG-005 应用后 catalog / drift / fact chore(reports): CHG-005 应用后 catalog / drift / facts / fixtures / 工作台快照 / evidence 回绑 @ 255dc31...
|
116
|
5
|
platform.yml
|
89
|
5
|
0
|
refs/heads/main
|
b54eccb01afc84bc640e987a599840b3f645e167
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b994fb35767d4bf107edd51dcbd5b6366d032ca2","after":"b54eccb01afc84bc640e987a599840b3f645e167","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/b994fb35767d4bf107edd51dcbd5b6366d032ca2...b54eccb01afc84bc640e987a599840b3f645e167","commits":[{"id":"b54eccb01afc84bc640e987a599840b3f645e167","message":"chore(reports): CHG-005 应用后 catalog / drift / facts / fixtures / 工作台快照 / evidence 回绑 @ 255dc31\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/b54eccb01afc84bc640e987a599840b3f645e167","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-17T08:28:43-07:00","added":[],"removed":[],"modified":["reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json"]},{"id":"255dc31e193ad4e83aefce8d78c80259c1032161","message":"feat(contracts): 应用 CHG-005——permissions.json 新增 platform.operations 资源;平台运维命令候选契约入仓\n\n目录负责人 2026-09-17 批准 CHG-005(Catalog Owner / 企业架构负责人 / Security 三份代签回执见材料)。simulate-chg-005 --contracts=active 镜像活跃契约验证 passed(permissionResources 9、impact 258 / 297、283/283、无新错误码)后 --apply:permissions.json 增 platform.operations(owner_domain=platform,maturity=draft,八动作),两处测试锚点同步。候选契约 platform-ops-api.v1 OpenAPI / 五个 OperationDefinition / catalog-delta 拷入 contracts/candidates/contracts(A-7 第二批 platform-ops-api 项)。audit-seeds 与运行时守卫另行实施。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/255dc31e193ad4e83aefce8d78c80259c1032161","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-17T08:28:38-07:00","added":["contracts/candidates/contracts/platform-ops-api.v1.catalog-delta.json","contracts/candidates/contracts/platform-ops-api.v1.openapi.json","contracts/candidates/contracts/platform-ops-definitions.v1.json"],"removed":[],"modified":["contracts/catalogs/permissions.json","contracts/test/governance-linter.test.mjs","contracts/test/impact-graph.test.mjs"]}],"total_commits":0,"head_commit":{"id":"b54eccb01afc84bc640e987a599840b3f645e167","message":"chore(reports): CHG-005 应用后 catalog / drift / facts / fixtures / 工作台快照 / evidence 回绑 @ 255dc31\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/b54eccb01afc84bc640e987a599840b3f645e167","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-17T08:28:43-07:00","added":[],"removed":[],"modified":["reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.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":16305,"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-17T23:19: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
|
30
|
1789658927
|
1789659048
|
0
|
1789658927
|
1789660067
|
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
|
|
24031
|
chore(reports): CHG-019 应用后 catalog / drift / fixt chore(reports): CHG-019 应用后 catalog / drift / fixtures / 工作台快照 / evidence 回绑 @ bde8af9...
|
116
|
5
|
platform.yml
|
90
|
5
|
0
|
refs/heads/main
|
7ca595293cae2a013f38280665e3ad8135c5d3c3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b54eccb01afc84bc640e987a599840b3f645e167","after":"7ca595293cae2a013f38280665e3ad8135c5d3c3","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/b54eccb01afc84bc640e987a599840b3f645e167...7ca595293cae2a013f38280665e3ad8135c5d3c3","commits":[{"id":"7ca595293cae2a013f38280665e3ad8135c5d3c3","message":"chore(reports): CHG-019 应用后 catalog / drift / fixtures / 工作台快照 / evidence 回绑 @ bde8af9\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/7ca595293cae2a013f38280665e3ad8135c5d3c3","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-17T08:34:28-07:00","added":[],"removed":[],"modified":["reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/fixtures.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json"]},{"id":"bde8af9ca8d2191cd8a05fc10121ef108f6ce67e","message":"feat(contracts): 应用 CHG-019(A-6)——permissions.json 八项应用域资源升 active,Linter 成熟度合法集扩为 draft | active\n\n决策批次 2026-09-16 A-6 批准「8 项离开 draft」,目录负责人 2026-09-17 选定终态 active。Linter PERMISSION_RESOURCE_METADATA_INVALID 改为 maturity ∈ {draft, active} 且 owner_domain 必填;hr.employment / identity.tenant-administration / knowledge.content / device.asset / quotation.operations / service.operations / execution.operations / material.production 改 active;platform.operations(CHG-005)保持 draft 至 OPS 命令验收。测试补成熟度负例与八项 active 基线断言,285/285;check:generated 一致;catalog / drift / fixtures 通过。运行时接线(P-4)随后单独提交。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/bde8af9ca8d2191cd8a05fc10121ef108f6ce67e","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-17T08:34:24-07:00","added":[],"removed":[],"modified":["contracts/catalogs/permissions.json","contracts/scripts/governance-linter.mjs","contracts/test/governance-linter.test.mjs"]}],"total_commits":0,"head_commit":{"id":"7ca595293cae2a013f38280665e3ad8135c5d3c3","message":"chore(reports): CHG-019 应用后 catalog / drift / fixtures / 工作台快照 / evidence 回绑 @ bde8af9\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/7ca595293cae2a013f38280665e3ad8135c5d3c3","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-17T08:34:28-07:00","added":[],"removed":[],"modified":["reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/fixtures.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.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":16358,"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-17T23:28: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
|
10
|
0
|
1789659579
|
0
|
1789659271
|
1789659579
|
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
|
|
24032
|
chore(reports): runtime 静态门禁(含新增 permission-catalo chore(reports): runtime 静态门禁(含新增 permission-catalog)与 module-imports / evidence 回绑 @ a51ad37...
|
116
|
5
|
platform.yml
|
91
|
5
|
0
|
refs/heads/main
|
05c96b7f6c43acc654b182a9e08cdd55f02ed8ee
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7ca595293cae2a013f38280665e3ad8135c5d3c3","after":"05c96b7f6c43acc654b182a9e08cdd55f02ed8ee","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/7ca595293cae2a013f38280665e3ad8135c5d3c3...05c96b7f6c43acc654b182a9e08cdd55f02ed8ee","commits":[{"id":"05c96b7f6c43acc654b182a9e08cdd55f02ed8ee","message":"chore(reports): runtime 静态门禁(含新增 permission-catalog)与 module-imports / evidence 回绑 @ a51ad37\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/05c96b7f6c43acc654b182a9e08cdd55f02ed8ee","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-17T08:39:35-07:00","added":["runtime/reports/permission-catalog.latest.json"],"removed":[],"modified":["reports/evidence-freshness.latest.json","reports/module-imports.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"a51ad37404e4a474389e5cccc3f6876a0cc18a20","message":"feat(runtime): CHG-019 / P-4 运行时接线——权限目录构建期快照喂装配点,decide 先过目录准入\n\n- scripts/sync-permission-catalog.mjs:把 contracts/catalogs/permissions.json 渲染为 packages/contracts/src/permission-catalog.ts(PERMISSION_CATALOG_ROUTES,57 条 resource:action,带 source sha256);--check 进 runtime check 链(check:permission-catalog,负向已验证:改一条 active 为 draft 即 exit 1),reports/permission-catalog.latest.json 登记进 check:evidence 作用域。\n- module-kit PlatformModuleDeps.permissionCatalog;permission 模块 domain/catalog-admission.ts(CATALOG_UNAVAILABLE / RESOURCE_NOT_IN_CATALOG / RESOURCE_NOT_ACTIVE;生产一律强制,其他环境 PLATFORM_PERMISSION_CATALOG_ENFORCE=1),PermissionStore.decide 在任何租户授权查询之前先过准入;装配点从 @repo/contracts 传入快照。\n- 5 例负向单测;api-nestjs 21 例装配单测、typecheck、check:module-imports、runtime 14 项静态门禁全过。runbook §2 增环境行;缺失清单 P-4 标已接线;runtime/CLAUDE.md 基线表增 permission-catalog 行。真实库下的拒绝用例待 check:runtime 重跑。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a51ad37404e4a474389e5cccc3f6876a0cc18a20","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-17T08:39:26-07:00","added":["runtime/modules/permission/src/domain/catalog-admission.ts","runtime/modules/permission/test/negative/catalog-admission.test.ts","runtime/packages/contracts/src/permission-catalog.ts","runtime/scripts/sync-permission-catalog.mjs"],"removed":[],"modified":["docs/runbook.md","docs/缺失模块完善清单-2026-09-16.md","governance/evidence-scopes.json","runtime/CLAUDE.md","runtime/apps/api-nestjs/src/platform/platform-ports.module.ts","runtime/modules/kit/src/index.ts","runtime/modules/permission/src/domain/index.ts","runtime/modules/permission/src/index.ts","runtime/modules/permission/src/persistence/permission-store.ts","runtime/package.json","runtime/packages/contracts/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"05c96b7f6c43acc654b182a9e08cdd55f02ed8ee","message":"chore(reports): runtime 静态门禁(含新增 permission-catalog)与 module-imports / evidence 回绑 @ a51ad37\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/05c96b7f6c43acc654b182a9e08cdd55f02ed8ee","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-17T08:39:35-07:00","added":["runtime/reports/permission-catalog.latest.json"],"removed":[],"modified":["reports/evidence-freshness.latest.json","reports/module-imports.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":16412,"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-17T23:34:32+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
10
|
0
|
1789659619
|
0
|
1789659579
|
1789659619
|
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
|
|
24034
|
chore(reports): fixtures / facts / migration-decs chore(reports): fixtures / facts / migration-decs / 工作台快照 / evidence 回绑 @ a51ad37(permission 模块源码变更后)...
|
116
|
5
|
platform.yml
|
92
|
5
|
0
|
refs/heads/main
|
908cf2d862dd87d195567ab8b87bee0f487755af
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"05c96b7f6c43acc654b182a9e08cdd55f02ed8ee","after":"908cf2d862dd87d195567ab8b87bee0f487755af","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/05c96b7f6c43acc654b182a9e08cdd55f02ed8ee...908cf2d862dd87d195567ab8b87bee0f487755af","commits":[{"id":"908cf2d862dd87d195567ab8b87bee0f487755af","message":"chore(reports): fixtures / facts / migration-decs / 工作台快照 / evidence 回绑 @ a51ad37(permission 模块源码变更后)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/908cf2d862dd87d195567ab8b87bee0f487755af","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-17T08:40:15-07:00","added":[],"removed":[],"modified":["reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json"]}],"total_commits":0,"head_commit":{"id":"908cf2d862dd87d195567ab8b87bee0f487755af","message":"chore(reports): fixtures / facts / migration-decs / 工作台快照 / evidence 回绑 @ a51ad37(permission 模块源码变更后)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/908cf2d862dd87d195567ab8b87bee0f487755af","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-17T08:40:15-07:00","added":[],"removed":[],"modified":["reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.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":16550,"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-17T23:39: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
|
34
|
1789660158
|
1789660224
|
0
|
1789659619
|
1789660326
|
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
|
|
24035
|
chore(reports): OPS-1 应用后门禁回绑 @ 6378b6f
|
116
|
5
|
platform.yml
|
93
|
5
|
0
|
refs/heads/main
|
1ccb3b69c365de2f80a4032ee4035a6999253197
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"908cf2d862dd87d195567ab8b87bee0f487755af","after":"1ccb3b69c365de2f80a4032ee4035a6999253197","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/908cf2d862dd87d195567ab8b87bee0f487755af...1ccb3b69c365de2f80a4032ee4035a6999253197","commits":[{"id":"1ccb3b69c365de2f80a4032ee4035a6999253197","message":"chore(reports): OPS-1 应用后门禁回绑 @ 6378b6f\n\nruntime 16 项静态门禁(含新增 check:platform-ops-definitions)、module-imports 0、fixtures 189/189、facts 16、catalog / drift、migration-decs、caddy、工作台两份快照(controlled_operations=recorded,5 条定义 1 条已实现);check:evidence partial(fresh 26 / stale 9,余 9 份均为需真实库或容器重跑的 warn 级)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/1ccb3b69c365de2f80a4032ee4035a6999253197","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-17T15:59:06-07:00","added":["runtime/reports/platform-ops-definitions.latest.json"],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"6378b6fbbdc70f947a007c7a644eea2929ed8484","message":"feat(runtime,contracts): OPS-1 平台运维命令 API 首条命令 permission.invalidation(CHG-005 / X09;CHG-018 条件 A 受控执行面)\n\n目录负责人 2026-09-17 批准 CHG-005 并点选「登记 + 契约 + 实现第一条命令」。\n- 候选 Schema:contracts/candidates/schemas/platform-ops/{operation-definitions,operation-request,operation-receipt}.v1.schema.json(补齐 OpenAPI 原引用的三份缺文件)。\n- 定义快照:runtime/scripts/sync-platform-ops-definitions.mjs → packages/contracts/src/platform-ops-definitions.ts(5 条),check:platform-ops-definitions 进 runtime check 链(负向已验证:改一条 risk 即 exit 1)。\n- 线上形状:packages/contracts/src/platform-ops.ts(请求 / 回执 Zod、ReasonCode、opr_ 编码、规范化 JSON),单测 4/4。\n- 模块接口:module-kit PlatformOpsRuntime(plan / execute / receipt)+ PlatformModule.opsRuntime 钩子;M3 实现以 operationId 为账本幂等键(invalidation_ledger.fact_id),审计经既有 outbox 中继(details 带 operation_id / definition_id / reason_code)。\n- 装配点:/api/platform/ops/{definitions,{definitionId},receipts/{operationId}},三重守卫(platform:ops scope ∧ 管理客户端 ∧ 管理员白名单,未配置即失败关闭)、Idempotency-Key、dry-run、plan_digest、executable 判定;auth 增 token scope/scp → AuthContext.scopes。\n- 工作台运维快照:controlled_operations 由固定 unavailable 改为登记五条定义与本仓实现状态,不声称任何环境可执行。\n验收:contracts 4/4、装配点纯函数 6/6、permission 隔离库集成 2/2(platform_permission_test,非超级用户角色)、真实 HTTP 4/4(内核库 + Redis :56379/7 + AUTH_MODE=jwt,覆盖 401/403/URL 凭证/executable/planned/缺键 400/409 不可执行/succeeded→replayed→409 冲突/回执一致/跨租户 404)、governance 265/265、runtime 静态门禁全过。记录见 docs/平台运维命令OPS-1实现记录-2026-09-17.md。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/6378b6fbbdc70f947a007c7a644eea2929ed8484","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-17T15:58:44-07:00","added":["contracts/candidates/schemas/platform-ops/operation-definitions.v1.schema.json","contracts/candidates/schemas/platform-ops/operation-receipt.v1.schema.json","contracts/candidates/schemas/platform-ops/operation-request.v1.schema.json","docs/平台运维命令OPS-1实现记录-2026-09-17.md","runtime/apps/api-nestjs/src/platform/http/platform-ops.adapter.ts","runtime/apps/api-nestjs/src/platform/http/platform-ops.controller.ts","runtime/apps/api-nestjs/test/platform.ops.http.test.ts","runtime/apps/api-nestjs/test/platform.ops.test.ts","runtime/modules/kit/src/platform-ops-runtime.ts","runtime/modules/permission/src/ops/permission-ops.ts","runtime/modules/permission/test/ops.integration.ts","runtime/modules/permission/vitest.integration.config.ts","runtime/packages/contracts/src/platform-ops-definitions.ts","runtime/packages/contracts/src/platform-ops.test.ts","runtime/packages/contracts/src/platform-ops.ts","runtime/scripts/sync-platform-ops-definitions.mjs"],"removed":[],"modified":["docs/runbook.md","docs/企业公共基础平台对外交付设计.md","docs/工作台管理接口实现记录-2026-09-17.md","governance/build-workbench-snapshots.mjs","governance/evidence-scopes.json","governance/test/build-workbench-snapshots.test.mjs","runtime/CLAUDE.md","runtime/apps/api-nestjs/src/auth/auth.guard.ts","runtime/apps/api-nestjs/src/auth/token-verifier.ts","runtime/apps/api-nestjs/src/platform/platform-http.module.ts","runtime/modules/kit/src/index.ts","runtime/modules/permission/package.json","runtime/modules/permission/src/index.ts","runtime/modules/permission/src/persistence/permission-store.ts","runtime/package.json","runtime/packages/contracts/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"1ccb3b69c365de2f80a4032ee4035a6999253197","message":"chore(reports): OPS-1 应用后门禁回绑 @ 6378b6f\n\nruntime 16 项静态门禁(含新增 check:platform-ops-definitions)、module-imports 0、fixtures 189/189、facts 16、catalog / drift、migration-decs、caddy、工作台两份快照(controlled_operations=recorded,5 条定义 1 条已实现);check:evidence partial(fresh 26 / stale 9,余 9 份均为需真实库或容器重跑的 warn 级)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/1ccb3b69c365de2f80a4032ee4035a6999253197","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-17T15:59:06-07:00","added":["runtime/reports/platform-ops-definitions.latest.json"],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":16573,"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-17T23:40:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1789685951
|
1789685988
|
0
|
1789685949
|
1789686018
|
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
|
|
24038
|
docs(交付设计): 补部署单元拆分触发条件、管理面不入业务同步依赖链、按应用/租户限额三处约束; docs(交付设计): 补部署单元拆分触发条件、管理面不入业务同步依赖链、按应用/租户限额三处约束;§4.1 增制品覆盖对账表...
|
116
|
5
|
platform.yml
|
94
|
5
|
0
|
refs/heads/main
|
361a0e418fa5c6c648f95625c7829a0c46a76cde
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1ccb3b69c365de2f80a4032ee4035a6999253197","after":"361a0e418fa5c6c648f95625c7829a0c46a76cde","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/1ccb3b69c365de2f80a4032ee4035a6999253197...361a0e418fa5c6c648f95625c7829a0c46a76cde","commits":[{"id":"361a0e418fa5c6c648f95625c7829a0c46a76cde","message":"docs(交付设计): 补部署单元拆分触发条件、管理面不入业务同步依赖链、按应用/租户限额三处约束;§4.1 增制品覆盖对账表\n\n- §5.1:拆出独立部署单元须满足独立扩容 / 故障隔离 / 发布节奏冲突任一条件,由该模块 Owner 提出,走变更包且不改既有契约与端口签名\n- §7.2:表前增同步依赖链约束(业务请求路径只允许权限判定 / 凭据校验 / 事实受理 / 审计追加 / AI 路由五类运行接口);表增「单个应用或租户流量激增」一行,按应用身份限额须待 M2 凭据达 authority 后签收\n- §4.1:按磁盘核对七条能力线的模块档位 / 客户端包 / 正式 OpenAPI,SDK 覆盖 3 / 7;凭据与数据范围有正式规范无权威实现,身份有权威实现无正式规范\n\n治理层 check-workspace-consistency 报 ISSUES 3 条(L8 冻结补丁布局、L9 compose project 撞名、L12 内核 pin 落后),均为既有项,与本次改动无关;本文件不在 evidence-scopes 内,不触发报告回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/361a0e418fa5c6c648f95625c7829a0c46a76cde","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:00:07-07:00","added":[],"removed":[],"modified":["docs/企业公共基础平台对外交付设计.md"]}],"total_commits":0,"head_commit":{"id":"361a0e418fa5c6c648f95625c7829a0c46a76cde","message":"docs(交付设计): 补部署单元拆分触发条件、管理面不入业务同步依赖链、按应用/租户限额三处约束;§4.1 增制品覆盖对账表\n\n- §5.1:拆出独立部署单元须满足独立扩容 / 故障隔离 / 发布节奏冲突任一条件,由该模块 Owner 提出,走变更包且不改既有契约与端口签名\n- §7.2:表前增同步依赖链约束(业务请求路径只允许权限判定 / 凭据校验 / 事实受理 / 审计追加 / AI 路由五类运行接口);表增「单个应用或租户流量激增」一行,按应用身份限额须待 M2 凭据达 authority 后签收\n- §4.1:按磁盘核对七条能力线的模块档位 / 客户端包 / 正式 OpenAPI,SDK 覆盖 3 / 7;凭据与数据范围有正式规范无权威实现,身份有权威实现无正式规范\n\n治理层 check-workspace-consistency 报 ISSUES 3 条(L8 冻结补丁布局、L9 compose project 撞名、L12 内核 pin 落后),均为既有项,与本次改动无关;本文件不在 evidence-scopes 内,不触发报告回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/361a0e418fa5c6c648f95625c7829a0c46a76cde","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:00:07-07:00","added":[],"removed":[],"modified":["docs/企业公共基础平台对外交付设计.md"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":16773,"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-18T06:59:10+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1789686091
|
1789686128
|
0
|
1789686091
|
1789686157
|
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
|
|
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
|
|
24043
|
chore(reports): WB-1 脚手架后门禁回绑 @ 460cfe9
|
116
|
5
|
platform.yml
|
96
|
5
|
0
|
refs/heads/main
|
9a111b33be8f5471c74e5c9310cb8acdc8fbdeb1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"460cfe907dba69936a3bec815b177f2f96ba8790","after":"9a111b33be8f5471c74e5c9310cb8acdc8fbdeb1","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/460cfe907dba69936a3bec815b177f2f96ba8790...9a111b33be8f5471c74e5c9310cb8acdc8fbdeb1","commits":[{"id":"9a111b33be8f5471c74e5c9310cb8acdc8fbdeb1","message":"chore(reports): WB-1 脚手架后门禁回绑 @ 460cfe9\n\n仓根 pnpm check 在 clean 树上退出码 0:pins / modules / module-imports(409 源文件 0 跨模块 import)/\ncatalog / drift / fixtures 17 套件 189 例 / facts / migration-decs / caddy / otel / governance 265 测试 0 失败 /\ncontracts check:local / runtime 静态门禁 31 项(含 workbench typecheck 与 lint)/ evidence。\n\ncheck:evidence 仍 partial:36 份登记中 26 新鲜、9 过期、1 例外。9 份过期全部是需真实环境的验收类报告\n(port-conformance / runtime-acceptance / ui-acceptance / revocation-sla / mainline-acceptance /\nidentity-http / identity-ui / mainline-restore / mainline-candidate-regression),与本次新增前端无关。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/9a111b33be8f5471c74e5c9310cb8acdc8fbdeb1","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:15:35-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"9a111b33be8f5471c74e5c9310cb8acdc8fbdeb1","message":"chore(reports): WB-1 脚手架后门禁回绑 @ 460cfe9\n\n仓根 pnpm check 在 clean 树上退出码 0:pins / modules / module-imports(409 源文件 0 跨模块 import)/\ncatalog / drift / fixtures 17 套件 189 例 / facts / migration-decs / caddy / otel / governance 265 测试 0 失败 /\ncontracts check:local / runtime 静态门禁 31 项(含 workbench typecheck 与 lint)/ evidence。\n\ncheck:evidence 仍 partial:36 份登记中 26 新鲜、9 过期、1 例外。9 份过期全部是需真实环境的验收类报告\n(port-conformance / runtime-acceptance / ui-acceptance / revocation-sla / mainline-acceptance /\nidentity-http / identity-ui / mainline-restore / mainline-candidate-regression),与本次新增前端无关。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/9a111b33be8f5471c74e5c9310cb8acdc8fbdeb1","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:15:35-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":17007,"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:15:02+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
10
|
0
|
1789686980
|
0
|
1789686947
|
1789686980
|
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
|
|
24044
|
docs(runtime): WB-1 工作台脚手架实现记录——本机验收范围、口径落点与未做项归属
|
116
|
5
|
platform.yml
|
97
|
5
|
0
|
refs/heads/main
|
8dae61f91b56f708b1c76e66f07d98efa4828a36
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9a111b33be8f5471c74e5c9310cb8acdc8fbdeb1","after":"8dae61f91b56f708b1c76e66f07d98efa4828a36","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/9a111b33be8f5471c74e5c9310cb8acdc8fbdeb1...8dae61f91b56f708b1c76e66f07d98efa4828a36","commits":[{"id":"8dae61f91b56f708b1c76e66f07d98efa4828a36","message":"docs(runtime): WB-1 工作台脚手架实现记录——本机验收范围、口径落点与未做项归属\n\n明确本记录不构成阶段 ② 验收:Caddy 托管 / 入口鉴权 / 快照与 PLATFORM_OPS_* 进部署 / 镜像注入\nPLATFORM_SOURCE_SHA / 目标环境四页验收 / 工作台制品入 Manifest 均未做,逐项标注归属。\n记录部署侧既知阻碍:容器镜像源码 19150ae 早于 8ced3d1 与 6378b6f,catalog 与 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/8dae61f91b56f708b1c76e66f07d98efa4828a36","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:16:11-07:00","added":["docs/工作台脚手架WB-1实现记录-2026-09-17.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"8dae61f91b56f708b1c76e66f07d98efa4828a36","message":"docs(runtime): WB-1 工作台脚手架实现记录——本机验收范围、口径落点与未做项归属\n\n明确本记录不构成阶段 ② 验收:Caddy 托管 / 入口鉴权 / 快照与 PLATFORM_OPS_* 进部署 / 镜像注入\nPLATFORM_SOURCE_SHA / 目标环境四页验收 / 工作台制品入 Manifest 均未做,逐项标注归属。\n记录部署侧既知阻碍:容器镜像源码 19150ae 早于 8ced3d1 与 6378b6f,catalog 与 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/8dae61f91b56f708b1c76e66f07d98efa4828a36","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:16:11-07:00","added":["docs/工作台脚手架WB-1实现记录-2026-09-17.md"],"removed":[],"modified":[]},"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":17036,"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:15: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
|
29
|
1789686990
|
1789687092
|
0
|
1789686980
|
1789687171
|
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
|
|
24051
|
chore(reports): PF-03 ⑤ 回灌后静态门禁回绑 @ a084c5e
|
116
|
5
|
platform.yml
|
98
|
5
|
0
|
refs/heads/main
|
a7a19ec54a9f4ed81c770afa85a19125130e85a5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8dae61f91b56f708b1c76e66f07d98efa4828a36","after":"a7a19ec54a9f4ed81c770afa85a19125130e85a5","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/8dae61f91b56f708b1c76e66f07d98efa4828a36...a7a19ec54a9f4ed81c770afa85a19125130e85a5","commits":[{"id":"a7a19ec54a9f4ed81c770afa85a19125130e85a5","message":"chore(reports): PF-03 ⑤ 回灌后静态门禁回绑 @ a084c5e\n\n干净树上重跑根 pnpm check(31 个 turbo 任务全过),26 份报告绑定\na084c5e / worktreeDirty=false。同时结清 41ca988 当时因并行会话在途、\n拿不到干净树而欠下的四份文档作用域报告(docs-truth、governance-docs、\nagent-adapters、dual-backend-parity)。\n\ncheck:evidence 仍为 partial:36 份已登记,26 新鲜 / 9 过期 / 1 例外。\n九条过期均为既有项,都需要真实环境重跑才能消除,不在本轮范围:\nport-conformance、runtime/ui-acceptance、revocation-sla、\nmainline-acceptance、mainline-restore、mainline-candidate-regression、\nidentity-http、identity-ui。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a7a19ec54a9f4ed81c770afa85a19125130e85a5","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:18:40-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"a084c5e5f61f25a4f70efca3c42a763a1e7c9b8d","message":"docs(runtime): PF-03 ⑤ 收口——README 与 CHANGELOG 声明本目录身份与版本轴归属\n\n承 41ca988。这两份随 scaffold 带入的框架文档不含错误的验收数字,问题是\n身份:读者落到 runtime/ 会以为自己在基础框架仓。\n\nREADME:\n- 标题由「基础框架 / Base Framework」改为「enterprise-platform/runtime\n (基础框架 v0.16.1 的 scaffold 实例)」,开篇说明下文绝大部分是框架原文\n 且仍准确,并划清三条界线——版本轴属框架、状态只认本仓报告与 CLAUDE.md\n 动态区、领取顺序在开发计划不设第二份\n- 目录结构补上此前完全缺失的本仓特有部分:modules/(kit + 七模块,\n modules.json + PLATFORM_PROFILES + 一模块一库)、clients/(@juhai/client-*)、\n test/(platform-tests),apps/ 补 workbench 与 api-nestjs 的平台装配点\n\nCHANGELOG:加一段说明这份轴属于框架、随 scaffold 带入,package.json 的\n0.16.1 读作「本运行时基于框架 0.16.1」而非平台版本;平台自己的发布轴是\nRelease Manifest、@juhai/* 包版本与开发计划 §2 的里程碑,平台侧新增能力\n不在此登记。\n\n框架原文的门禁、命令与 ADR 一律未动。check:docs-truth 与\ncheck:governance-docs 均通过(README 的信封形状与 api-fastify 定位断言\n未受影响)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a084c5e5f61f25a4f70efca3c42a763a1e7c9b8d","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:17:59-07:00","added":[],"removed":[],"modified":["runtime/CHANGELOG.md","runtime/README.md"]}],"total_commits":0,"head_commit":{"id":"a7a19ec54a9f4ed81c770afa85a19125130e85a5","message":"chore(reports): PF-03 ⑤ 回灌后静态门禁回绑 @ a084c5e\n\n干净树上重跑根 pnpm check(31 个 turbo 任务全过),26 份报告绑定\na084c5e / worktreeDirty=false。同时结清 41ca988 当时因并行会话在途、\n拿不到干净树而欠下的四份文档作用域报告(docs-truth、governance-docs、\nagent-adapters、dual-backend-parity)。\n\ncheck:evidence 仍为 partial:36 份已登记,26 新鲜 / 9 过期 / 1 例外。\n九条过期均为既有项,都需要真实环境重跑才能消除,不在本轮范围:\nport-conformance、runtime/ui-acceptance、revocation-sla、\nmainline-acceptance、mainline-restore、mainline-candidate-regression、\nidentity-http、identity-ui。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a7a19ec54a9f4ed81c770afa85a19125130e85a5","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:18:40-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":17042,"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:16: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
|
30
|
1789687192
|
1789687229
|
0
|
1789687171
|
1789687258
|
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
|
|
24053
|
chore(reports): catalog:drift 升档后全量回绑 @ 8382c04(干净 chore(reports): catalog:drift 升档后全量回绑 @ 8382c04(干净树)...
|
116
|
5
|
platform.yml
|
99
|
5
|
0
|
refs/heads/main
|
bd625a1a1535a34e265b11424a646618c543ffef
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a7a19ec54a9f4ed81c770afa85a19125130e85a5","after":"bd625a1a1535a34e265b11424a646618c543ffef","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/a7a19ec54a9f4ed81c770afa85a19125130e85a5...bd625a1a1535a34e265b11424a646618c543ffef","commits":[{"id":"bd625a1a1535a34e265b11424a646618c543ffef","message":"chore(reports): catalog:drift 升档后全量回绑 @ 8382c04(干净树)\n\n根 check 链 exit 0(catalog:drift 升档后 error 0 / drift 0 仍通过)、runtime 16 项静态门禁、工作台两份快照重生成。\n\n顺带清掉 7 条 EVIDENCE_BOUND_DIRTY:caddy / fixtures / facts / migration-decs / module-imports / catalog-reconciliation / otel 此前由 a7a19ec(PF-03 ⑤ 回绑)带进干净树时绑在脏树上,本次在干净树重跑后绑定 8382c04 / worktreeDirty=false。check:evidence 由 failed 回到 partial(新鲜 26 / 过期 9 / 无效 0),余 9 条过期均为需真实库或容器重跑的 warn 级。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/bd625a1a1535a34e265b11424a646618c543ffef","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:22:31-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"8382c0432e3c0cc2f2c6f379a2374d5f6e2cc9d1","message":"feat(governance): catalog:drift 升档为阻断(决策批次 2026-09-16 C-12)\n\nC-12 的两个前置都已满足:A-2 已应用(CHG-002 于本轮落地),drift 已清零(error 0 / drift 0 / info 5 / unknown 0)。\n\n升档前的实况比\"能发现、不能阻断\"更弱:只有 `--strict` 才对 `error` 阻断,而根 `pnpm check` 从不传该开关、全仓也没有任何调用方传过——这道门禁装上之后一次都没拦过。现改为 `error` 与 `drift` 一律 exit 1,不再需要开关;`info`(authority≠E2 的刻意保留)与 `unknown`(独立克隆缺仓外资料)不阻断,独立克隆的失败关闭由 contracts check:local 与完整 check 承担。输出行的 ✓/✗ 同步按两档判。\n\n测试补 CLI 层四段:干净 exit 0、drift exit 1(升档前此处为 0)、error exit 1、工作区不可用只记 unknown 不阻断。check-catalog-drift 6/6。\n\n另修工作台运维快照:evidence 一档原样透传 check:evidence 的结论,passed / partial / failed 都是合法取值,此前允许集合漏了 failed——证据一过期就把快照测试打红,而不是让快照如实显示过期。规则行与测试同步补上,仍不含 available / healthy 这类会被误读成\"环境可用\"的词。governance 266/266。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/8382c0432e3c0cc2f2c6f379a2374d5f6e2cc9d1","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:21:32-07:00","added":[],"removed":[],"modified":["governance/build-workbench-snapshots.mjs","governance/check-catalog-drift.mjs","governance/test/build-workbench-snapshots.test.mjs","governance/test/check-catalog-drift.test.mjs"]}],"total_commits":0,"head_commit":{"id":"bd625a1a1535a34e265b11424a646618c543ffef","message":"chore(reports): catalog:drift 升档后全量回绑 @ 8382c04(干净树)\n\n根 check 链 exit 0(catalog:drift 升档后 error 0 / drift 0 仍通过)、runtime 16 项静态门禁、工作台两份快照重生成。\n\n顺带清掉 7 条 EVIDENCE_BOUND_DIRTY:caddy / fixtures / facts / migration-decs / module-imports / catalog-reconciliation / otel 此前由 a7a19ec(PF-03 ⑤ 回绑)带进干净树时绑在脏树上,本次在干净树重跑后绑定 8382c04 / worktreeDirty=false。check:evidence 由 failed 回到 partial(新鲜 26 / 过期 9 / 无效 0),余 9 条过期均为需真实库或容器重跑的 warn 级。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/bd625a1a1535a34e265b11424a646618c543ffef","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:22:31-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":17096,"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:19:32+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1789687355
|
1789687392
|
0
|
1789687354
|
1789687448
|
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
|
|
24057
|
chore(governance): evidence-scopes 口径说明补第五类——有 pro chore(governance): evidence-scopes 口径说明补第五类——有 provenance 但无生成脚本的一次性记录...
|
116
|
5
|
platform.yml
|
100
|
5
|
0
|
refs/heads/main
|
ac396a0f27fd673e02fc0c2f5887ea7f06b879b4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd625a1a1535a34e265b11424a646618c543ffef","after":"ac396a0f27fd673e02fc0c2f5887ea7f06b879b4","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/bd625a1a1535a34e265b11424a646618c543ffef...ac396a0f27fd673e02fc0c2f5887ea7f06b879b4","commits":[{"id":"ac396a0f27fd673e02fc0c2f5887ea7f06b879b4","message":"chore(governance): evidence-scopes 口径说明补第五类——有 provenance 但无生成脚本的一次性记录\n\n那段说明自 2026-09-15 起写「余 15 份未登记,都是有意不登」并逐类枚举,\n但今天实测是 16 份,且 client-identity 与 governance-truth-validation 两份\n不在任何一类里——说明本身成了过期声明,而它正是「为什么不登」的唯一依据。\n\n全仓搜索确认这两份没有生成脚本(与 caddy / workbench-snapshots 这类有\ngenerator 的登记项相反),属手工一次性记录:可以有合法 provenance,但不可\n重跑,登记后必然过期且只能靠例外掩盖。故新增第五类并写明:\n\n- 与 reports/stack-image-pins.latest.json 同因不同果——后者当年登记了,\n 于是只能挂一条带出口的例外;第五类因未登记而无需例外\n- 出口同样二选一:补生成脚本后转正式登记,或退役该报告\n- 在此之前它们只是记录,不得被引用为可重跑的机器证据\n\n计数改为带日期的复核快照。未新增或删除任何作用域登记,未改判据,未动文件\n其余格式(差异 1 行)。check:evidence 仍 partial(26 新鲜 / 9 过期 / 1 例外,\n与改前逐项相同);governance 测试 266/266。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/ac396a0f27fd673e02fc0c2f5887ea7f06b879b4","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:23:44-07:00","added":[],"removed":[],"modified":["governance/evidence-scopes.json"]}],"total_commits":0,"head_commit":{"id":"ac396a0f27fd673e02fc0c2f5887ea7f06b879b4","message":"chore(governance): evidence-scopes 口径说明补第五类——有 provenance 但无生成脚本的一次性记录\n\n那段说明自 2026-09-15 起写「余 15 份未登记,都是有意不登」并逐类枚举,\n但今天实测是 16 份,且 client-identity 与 governance-truth-validation 两份\n不在任何一类里——说明本身成了过期声明,而它正是「为什么不登」的唯一依据。\n\n全仓搜索确认这两份没有生成脚本(与 caddy / workbench-snapshots 这类有\ngenerator 的登记项相反),属手工一次性记录:可以有合法 provenance,但不可\n重跑,登记后必然过期且只能靠例外掩盖。故新增第五类并写明:\n\n- 与 reports/stack-image-pins.latest.json 同因不同果——后者当年登记了,\n 于是只能挂一条带出口的例外;第五类因未登记而无需例外\n- 出口同样二选一:补生成脚本后转正式登记,或退役该报告\n- 在此之前它们只是记录,不得被引用为可重跑的机器证据\n\n计数改为带日期的复核快照。未新增或删除任何作用域登记,未改判据,未动文件\n其余格式(差异 1 行)。check:evidence 仍 partial(26 新鲜 / 9 过期 / 1 例外,\n与改前逐项相同);governance 测试 266/266。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/ac396a0f27fd673e02fc0c2f5887ea7f06b879b4","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:23:44-07:00","added":[],"removed":[],"modified":["governance/evidence-scopes.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":17159,"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:22:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1789687543
|
1789687636
|
0
|
1789687513
|
1789688615
|
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
|
|
24058
|
fix(runtime): 框架残留 compose 补 project 名——退出 api-nes fix(runtime): 框架残留 compose 补 project 名——退出 api-nestjs 撞名(C-13 / 一致性门禁 L9)...
|
116
|
5
|
platform.yml
|
101
|
5
|
0
|
refs/heads/main
|
0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ac396a0f27fd673e02fc0c2f5887ea7f06b879b4","after":"0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/ac396a0f27fd673e02fc0c2f5887ea7f06b879b4...0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab","commits":[{"id":"0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab","message":"fix(runtime): 框架残留 compose 补 project 名——退出 api-nestjs 撞名(C-13 / 一致性门禁 L9)\n\nruntime/apps/api-nestjs/docker-compose.yml 未声明顶层 name,docker compose 按目录名推导为\napi-nestjs,与工作区内另外 8 个仓的同名 compose 共用容器与具名卷(api-nestjs_pgdata /\nredisdata / miniodata);后 up 的那个会复用前一个的数据。框架仓同名文件已写成\n`name: ${COMPOSE_PROJECT_NAME:-base-framework}`,本仓这份是更早版本的残留。\n\n按同一写法补上,默认值取本仓专属 enterprise-platform-runtime-dev(不沿用框架默认,否则\n改为与框架仓撞名)。本文件是框架默认 dev compose,其端口 5432 / 6379 与本仓实际底座\n(stack/compose.yaml,project enterprise-platform-stack)无关,改名不影响任何在跑的服务。\n\n一致性门禁 L9 参与仓 9 → 8;余 8 个仓在业务应用层与企业领域应用层,按 C-13 由各仓 Owner\n与 SRE 处置。三组卷现状:api-nestjs_* 与 enterprise-idp_* 共 5 个卷,所属容器均为\ncreated / exited 非运行态;C-13 要求的 pg_dump 尚未做(仓备份-2026-09-16/ 目前只有 4 个 git bundle)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab","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:25:43-07:00","added":[],"removed":[],"modified":["runtime/apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab","message":"fix(runtime): 框架残留 compose 补 project 名——退出 api-nestjs 撞名(C-13 / 一致性门禁 L9)\n\nruntime/apps/api-nestjs/docker-compose.yml 未声明顶层 name,docker compose 按目录名推导为\napi-nestjs,与工作区内另外 8 个仓的同名 compose 共用容器与具名卷(api-nestjs_pgdata /\nredisdata / miniodata);后 up 的那个会复用前一个的数据。框架仓同名文件已写成\n`name: ${COMPOSE_PROJECT_NAME:-base-framework}`,本仓这份是更早版本的残留。\n\n按同一写法补上,默认值取本仓专属 enterprise-platform-runtime-dev(不沿用框架默认,否则\n改为与框架仓撞名)。本文件是框架默认 dev compose,其端口 5432 / 6379 与本仓实际底座\n(stack/compose.yaml,project enterprise-platform-stack)无关,改名不影响任何在跑的服务。\n\n一致性门禁 L9 参与仓 9 → 8;余 8 个仓在业务应用层与企业领域应用层,按 C-13 由各仓 Owner\n与 SRE 处置。三组卷现状:api-nestjs_* 与 enterprise-idp_* 共 5 个卷,所属容器均为\ncreated / exited 非运行态;C-13 要求的 pg_dump 尚未做(仓备份-2026-09-16/ 目前只有 4 个 git bundle)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab","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:25:43-07:00","added":[],"removed":[],"modified":["runtime/apps/api-nestjs/docker-compose.yml"]},"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":17167,"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:25:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
33
|
1789687636
|
1789687678
|
0
|
1789687572
|
1789687994
|
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
|
|
24061
|
chore(reports): otel 回绑 @ e5cc39f(首次用 pnpm reports chore(reports): otel 回绑 @ e5cc39f(首次用 pnpm reports:rebind 产出)...
|
116
|
5
|
platform.yml
|
102
|
5
|
0
|
refs/heads/main
|
4b067cd4a76bfced89f76e979cf7bd36d3521a91
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab","after":"4b067cd4a76bfced89f76e979cf7bd36d3521a91","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/0c5d0b09bc2d1c4baddfd59b484c5fdcbe0917ab...4b067cd4a76bfced89f76e979cf7bd36d3521a91","commits":[{"id":"4b067cd4a76bfced89f76e979cf7bd36d3521a91","message":"chore(reports): otel 回绑 @ e5cc39f(首次用 pnpm reports:rebind 产出)\n\n在主工作区有并行会话未提交改动的情况下,经 HEAD 干净检出生成,\nprovenance 绑 e5cc39f / worktreeDirty=false——偏差 #34-A 裁决实现的首次实用。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/4b067cd4a76bfced89f76e979cf7bd36d3521a91","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:32:14-07:00","added":[],"removed":[],"modified":["reports/otel.latest.json"]},{"id":"e5cc39f4dc74d56bce2b1861b15f8822ec3fdc3e","message":"feat(governance): 偏差 #34 裁决实现——干净检出回绑工具 + 脏绑判定不再断言未核实的事\n\n2026-09-17 目录负责人裁决:A 走「干净 worktree 生成报告」(不动判据),\nB「修正断言」。\n\n#34-A|新增 governance/rebind-reports.mjs(pnpm reports:rebind)\nprovenance.worktreeDirty 由全仓 git status 算,而 check:evidence 判过期是按\n每份报告自己的作用域算。口径不一致,导致只要仓里任何无关文件脏着就没法回绑\n任何报告——本工作区常有 2—3 个并行会话,干净窗口稀少,这是过期证据难清零的\n结构性成因。裁决不放宽 worktreeDirty,改为换个干净的地方生成:在 HEAD 开\ngit worktree 检出,在那里跑门禁,只把「绑 HEAD 且 dirty=false」的报告拷回。\n\n可行前提是 governance/ 零依赖(package.json 无 dependencies/devDependencies),\n临时检出不需要 pnpm install。实测:主工作区有 7 项未提交时,otel 报告仍绑到\n0c5d0b0 / dirty=false。\n\n三条护栏,都有负向用例:\n- 作用域内有未提交输入的门禁跳过(否则是拿 HEAD 的结论覆盖当前工作区)\n- 目标报告自己未提交的跳过(并行会话的在途产物,覆盖即销毁;--force 才 override)\n- 产出 provenance 不是干净 HEAD 绑定就不带回\n范围外的说清楚不假装:check:fixtures / check:port-conformance 与 runtime、\ncontracts 的检查需要构建产物,必须在装好依赖的检出里跑。\n\n顺带记一条坑:入口判定不能写 `import.meta.url === file://${argv[1]}`——本仓\n路径含中文,import.meta.url 是百分号编码的,比较永远不等,脚本会静默不做事。\n\n#34-B|check-evidence-freshness 的 EVIDENCE_BOUND_DIRTY\n该分支读的是工作区里的报告文件,定级却用 currentTreeDirty,而后者走\ngitProvenance() 并显式排除 *.latest.json。于是并行会话跑门禁、只有报告文件脏\n时,当前树被算作干净,4 份未提交的在途报告被判 error 并输出「脏绑报告被提交\n了」——该断言为假(那 4 份的 HEAD 版本干净绑 8382c04)。现按报告文件自身是否\n未提交区分:在途产物降 info 并如实描述;确系已提交的脏绑仍是 error。判据未放宽,\n两条负向用例分别钉住这两侧。\n\ngovernance 测试 266 → 275。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e5cc39f4dc74d56bce2b1861b15f8822ec3fdc3e","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:32:04-07:00","added":["governance/rebind-reports.mjs","governance/test/rebind-reports.test.mjs"],"removed":[],"modified":["docs/runbook.md","governance/README.md","governance/check-evidence-freshness.mjs","governance/test/check-evidence-freshness.test.mjs","package.json"]}],"total_commits":0,"head_commit":{"id":"4b067cd4a76bfced89f76e979cf7bd36d3521a91","message":"chore(reports): otel 回绑 @ e5cc39f(首次用 pnpm reports:rebind 产出)\n\n在主工作区有并行会话未提交改动的情况下,经 HEAD 干净检出生成,\nprovenance 绑 e5cc39f / worktreeDirty=false——偏差 #34-A 裁决实现的首次实用。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/4b067cd4a76bfced89f76e979cf7bd36d3521a91","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:32:14-07:00","added":[],"removed":[],"modified":["reports/otel.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":17171,"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:26: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
|
34
|
1789688675
|
1789688713
|
0
|
1789687994
|
1789688741
|
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
|
|
24065
|
chore(reports): 工作台两份快照回绑 @ e94ad17
|
116
|
5
|
platform.yml
|
103
|
5
|
0
|
refs/heads/main
|
f9cb195319422eac06bd2111e1034e956ebcafb0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4b067cd4a76bfced89f76e979cf7bd36d3521a91","after":"f9cb195319422eac06bd2111e1034e956ebcafb0","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/4b067cd4a76bfced89f76e979cf7bd36d3521a91...f9cb195319422eac06bd2111e1034e956ebcafb0","commits":[{"id":"f9cb195319422eac06bd2111e1034e956ebcafb0","message":"chore(reports): 工作台两份快照回绑 @ e94ad17\n\n经 pnpm reports:rebind 的多报告路径产出,两份同绑同一提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/f9cb195319422eac06bd2111e1034e956ebcafb0","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-17T18:22:33-07:00","added":[],"removed":[],"modified":["reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json"]},{"id":"e94ad17db981932c5d0b08f2b99f2a786bdf36d7","message":"feat(governance): rebind-reports 支持一个门禁多份报告,纳入工作台两份快照\n\nworkbench-catalog-snapshot 与 workbench-ops-snapshot 由同一个\nbuild-workbench-snapshots.mjs 产出,且它只 import node 内置与\ngovernance/lib/provenance.mjs——同样零依赖,本该在工具覆盖范围内。\n\n注册表 report:string → reports:string[],三处判定与执行循环随之改为按份遍历。\n新增一条语义约束:同一门禁的多份报告要么全带回、要么一份都不带,否则两份会\n绑到不同提交,而它们描述的是同一次运行。两条负向用例分别钉住「任一份在途即\n整体跳过」与「任一份作用域有未提交输入即整体跳过」。\n\n实跑验证:两份快照同绑 aaf4836 / dirty=false。\ngovernance 测试 275 → 277。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e94ad17db981932c5d0b08f2b99f2a786bdf36d7","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-17T18:22:24-07:00","added":[],"removed":[],"modified":["governance/README.md","governance/rebind-reports.mjs","governance/test/rebind-reports.test.mjs"]},{"id":"aaf483645e83337d5d0a8a50b95df678adf0fb76","message":"chore(reports): 过期证据 13 → 8,全部 error 清零 @ 4b067cd\n\n按偏差 #34 裁决落地后的第一轮清理。源码树干净(仅并行会话的 4 份 latest\n报告未提交,worktreeDirty 本就排除 *.latest.json),故可就地重跑并绑定。\n\n- port-conformance:41/41 passed,由 defd9d7 重绑 4b067cd。这是 09-17 那次\n 「跑通了却因无关文件脏着而不能采信」的收口\n- runtime 静态链 31 任务全过:naming / dual-backend-parity / fork-readiness /\n migrations 四份此前因并行会话提交 WB-1、runtime/apps 多出 workbench 而落进\n 作用域,现已重绑\n- workbench 两份快照重新生成(catalog projects=21 mapped=7/7 conflicts=0;\n ops controlled_operations=recorded)\n\ncheck:evidence 由 failed 转 partial:27 新鲜 / 8 过期 / 1 例外,0 error。\n余下 8 份全部需要真实环境才能重跑,不是本机静态能解决的:\nruntime-acceptance、ui-acceptance、revocation-sla、mainline-acceptance、\nmainline-restore、mainline-candidate-regression、identity-http、identity-ui。\n\n未触碰并行会话在途的 caddy / facts / migration-decs / module-imports 四份。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/aaf483645e83337d5d0a8a50b95df678adf0fb76","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-17T18:21:25-07:00","added":[],"removed":[],"modified":["reports/port-conformance.latest.json","reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"f9cb195319422eac06bd2111e1034e956ebcafb0","message":"chore(reports): 工作台两份快照回绑 @ e94ad17\n\n经 pnpm reports:rebind 的多报告路径产出,两份同绑同一提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/f9cb195319422eac06bd2111e1034e956ebcafb0","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-17T18:22:33-07:00","added":[],"removed":[],"modified":["reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.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":17220,"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:33: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
|
30
|
1789694588
|
1789694626
|
0
|
1789694573
|
1789694655
|
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
|
|
24066
|
chore(reports): 全链回绑 @ 1af0f22,证据零过期零告警
|
116
|
5
|
platform.yml
|
104
|
5
|
0
|
refs/heads/main
|
36e0423efe0ddc105136d193bfb594efb9838d62
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f9cb195319422eac06bd2111e1034e956ebcafb0","after":"36e0423efe0ddc105136d193bfb594efb9838d62","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/f9cb195319422eac06bd2111e1034e956ebcafb0...36e0423efe0ddc105136d193bfb594efb9838d62","commits":[{"id":"36e0423efe0ddc105136d193bfb594efb9838d62","message":"chore(reports): 全链回绑 @ 1af0f22,证据零过期零告警\n\n干净树重跑根 pnpm check。check:evidence:34 份已登记,**33 份新鲜 / 0 过期 /\n0 输入未提交 / 0 告警 / 1 例外**(stack-image-pins,其例外自带出口)。\n\n这是本轮治理完善的收口:从九份过期、error 级判定,到零过期零告警。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/36e0423efe0ddc105136d193bfb594efb9838d62","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-17T18:56:42-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"1af0f2210a8ac041a26a97ff5f4965461398ebf1","message":"feat(governance): 测试地板 652 → 775;动态区回灌今日三级验收\n\ncheck:docs-truth 抓出报告已刷新而动态区未跟上——正是今天修过的那类双真源\n漂移,这次由门禁自己拦住。\n\n- 动态区「真实 DB」:2026-09-13 / 7e26a50 / 652 → 2026-09-18 / 6108357 /\n 775,并写明隔离栈与「破坏性注入只认 ms23-ci 类专用工程」的边界\n- 动态区「浏览器」:2026-09-13 / 7e26a50 → 2026-09-18 / 003aadd,端口如实\n- 棘轮:testsPassed 652 → 775(本轮实测),ownTests 35 → 40、\n ownTestCases 185 → 212(静态 runner 自己抬的,它刻意不动其他 runner 的地板)\n\n棘轮只收紧不放宽:775 是今天真实跑出来的数,此后低于它即红。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/1af0f2210a8ac041a26a97ff5f4965461398ebf1","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-17T18:56:07-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md","runtime/reports/baseline.json"]},{"id":"23281b8f814b350af20b95ab6a4176cdbaf25b0a","message":"chore(governance): 退役两份无生成脚本的报告,过期证据归零\n\n2026-09-17 目录负责人裁决:两份都退役(删文件 + 撤登记,不留例外)。\n\n两份都是 09-12 手工拼的一次性记录,仓内没有任何脚本能产出它们,因此永远\n无法重跑、只会一直过期;而它们的结论现在都由自动化门禁产出并正确绑定:\n\n- identity-http(8 例):逐条比对确认与 runtime/test/e2e/identity-profile.test.ts\n 同名,今日已在 check:runtime 的 775 例里跑过并绑 6108357。其自述的\n provenanceMethod 就写着「Post-run source inspection」,本就不是门禁产物\n- mainline-candidate-regression(155 例):作用域即 governance/{lib,test} 与\n 两个检查器,结论由 node --test governance/test/*.test.mjs 产出,今日 277/277。\n 155 这个数字自 09-12 起无人维护,保留它只会让人以为另有一道独立的候选回归门禁\n\n退役前已核:release-manifest.mjs 与 build-workbench-snapshots.mjs 都不引用\n这两份;其余引用只在 09-12 的历史记录文档与生成式快照字段里,会随重跑更新。\n\nevidence-scopes 登记 36 → 34,note 补记本次裁决与口径(同 stack-image-pins\n例外里写的「倾向 ① 退役」)。\n\ncheck:evidence:33 新鲜 / **0 过期** / 1 例外(stack-image-pins,另有出口)。\ngovernance 测试 277/277。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/23281b8f814b350af20b95ab6a4176cdbaf25b0a","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-17T18:54:10-07:00","added":[],"removed":["reports/identity-http.latest.json","reports/mainline-candidate-regression.latest.json"],"modified":["governance/evidence-scopes.json"]},{"id":"95d0ac8860038d4af6a3d15d4ca35ff0eff52749","message":"chore(reports): 主线验收与恢复演练重跑通过 @ bc978a8\n\n在专用隔离栈 enterprise-platform-ms23-ci(PG :55485 / Redis :56395 /\nRedpanda :59105)上重跑,源库经 mainline:prepare 新建(platform_{fact,\npermission,audit,owner,consumer}_ci,全部非超级用户 / NOBYPASSRLS)。\n\n- mainline-acceptance passed,四套件 11 / 17 / 19 / 18:fact-read-http、\n fact-persistence、audit-tamper、mainline-revocation-chaos(含重复投递、\n 非连续乱序版本、毒消息 DLQ 与 broker 停机恢复)\n- mainline-restore passed,3 个库逐库 dump + 还原到新建 drill 库,表数\n 12 / 6 / …,逐库 SHA-256 一致;不删除、不重置源库与既往 drill\n- revocation-sla 随之刷新,仍 partial:invalidationPush 的 verdict 依旧是\n measured-with-harness-transport,生产传输未接线\n\n为什么换栈:恢复演练与 Redpanda 混沌用例的 allowlist 只认\nenterprise-platform-{ms23,ms23-ci,adversarial} 三个 compose 工程,\n共享的 ep-delivery 与 dev 常驻 stack 永远不匹配——这是故意的护栏,\n破坏性注入不得指向共享底座。dev 常驻栈全程未被触碰。\n\ncheck:evidence 过期 4 → 2,余下两份都没有生成脚本,另行处置。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/95d0ac8860038d4af6a3d15d4ca35ff0eff52749","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-17T18:50:15-07:00","added":[],"removed":[],"modified":["reports/mainline-acceptance.latest.json","reports/mainline-restore.latest.json","reports/revocation-sla.latest.json"]},{"id":"bc978a8a99636b34e0bc69b018ee6ce8bd6192b9","message":"chore(reports): identity 模块 UI 验收重跑通过 @ 828f178\n\n真实统一 Next 前端 + identity profile + 专用 PostgreSQL/Redis,2 个浏览器级\n用例全绿,由 90cda56 重绑 828f178(作用域内此前累计 21 个文件变更)。\n端口 web :7352 / api :7353。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/bc978a8a99636b34e0bc69b018ee6ce8bd6192b9","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-17T18:43:48-07:00","added":[],"removed":[],"modified":["reports/identity-ui.latest.json"]}],"total_commits":0,"head_commit":{"id":"36e0423efe0ddc105136d193bfb594efb9838d62","message":"chore(reports): 全链回绑 @ 1af0f22,证据零过期零告警\n\n干净树重跑根 pnpm check。check:evidence:34 份已登记,**33 份新鲜 / 0 过期 /\n0 输入未提交 / 0 告警 / 1 例外**(stack-image-pins,其例外自带出口)。\n\n这是本轮治理完善的收口:从九份过期、error 级判定,到零过期零告警。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/36e0423efe0ddc105136d193bfb594efb9838d62","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-17T18:56:42-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":17277,"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-18T09:22:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
24
|
1789696615
|
1789696796
|
0
|
1789696615
|
1789696855
|
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
|
|
24067
|
docs: 修复退役报告导致的断链(一致性门禁 L4)
|
116
|
5
|
platform.yml
|
105
|
5
|
0
|
refs/heads/main
|
e6d286b4f61d0227fa7f42cd0f5f40e624540dbf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"36e0423efe0ddc105136d193bfb594efb9838d62","after":"e6d286b4f61d0227fa7f42cd0f5f40e624540dbf","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/36e0423efe0ddc105136d193bfb594efb9838d62...e6d286b4f61d0227fa7f42cd0f5f40e624540dbf","commits":[{"id":"e6d286b4f61d0227fa7f42cd0f5f40e624540dbf","message":"docs: 修复退役报告导致的断链(一致性门禁 L4)\n\n09-12 的候选校验记录链向 reports/mainline-candidate-regression.latest.json,\n该报告已随 23281b8 退役,治理层一致性门禁 L4 随即报断链。改为文字说明:\n报告已退役、退役理由、结论现由 governance 测试产出(今 277/277),当时的\n154/0/1 保留为历史记录,不改写历史结论。\n\nL4 / L10 / L13 恢复 CLEAN。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e6d286b4f61d0227fa7f42cd0f5f40e624540dbf","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-17T18:58:04-07:00","added":[],"removed":[],"modified":["docs/候选校验与恢复脚本修复记录-2026-09-12.md"]}],"total_commits":0,"head_commit":{"id":"e6d286b4f61d0227fa7f42cd0f5f40e624540dbf","message":"docs: 修复退役报告导致的断链(一致性门禁 L4)\n\n09-12 的候选校验记录链向 reports/mainline-candidate-regression.latest.json,\n该报告已随 23281b8 退役,治理层一致性门禁 L4 随即报断链。改为文字说明:\n报告已退役、退役理由、结论现由 governance 测试产出(今 277/277),当时的\n154/0/1 保留为历史记录,不改写历史结论。\n\nL4 / L10 / L13 恢复 CLEAN。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e6d286b4f61d0227fa7f42cd0f5f40e624540dbf","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-17T18:58:04-07:00","added":[],"removed":[],"modified":["docs/候选校验与恢复脚本修复记录-2026-09-12.md"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":17420,"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-18T09:56: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
|
3
|
26
|
1789696796
|
1789696836
|
0
|
1789696688
|
1789696855
|
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
|
|
24069
|
chore(reports): 回绑 @ a9fd6e8,check:evidence 全绿
|
116
|
5
|
platform.yml
|
106
|
5
|
0
|
refs/heads/main
|
2dfbcb9148a7beabb926462eebb82645e548c10a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e6d286b4f61d0227fa7f42cd0f5f40e624540dbf","after":"2dfbcb9148a7beabb926462eebb82645e548c10a","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/e6d286b4f61d0227fa7f42cd0f5f40e624540dbf...2dfbcb9148a7beabb926462eebb82645e548c10a","commits":[{"id":"2dfbcb9148a7beabb926462eebb82645e548c10a","message":"chore(reports): 回绑 @ a9fd6e8,check:evidence 全绿\n\n33 份已登记全部新鲜,0 过期 / 0 未提交输入 / 0 例外 / 0 告警。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/2dfbcb9148a7beabb926462eebb82645e548c10a","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-17T19:00:52-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"a9fd6e826db77532ac3abfc149a9de822e40ea12","message":"chore(governance): 退役 stack-image-pins,check:evidence 首次转 passed\n\n目录负责人裁决:按该报告自己的例外里写的「倾向 ① 退役」执行。\n\n它与今日退役的另两份同类:仓内无生成脚本(2026-09-14 全仓搜索确认),是\n一次性手工产物,永远无法重跑,只能靠例外掩盖。其结论「compose 12 个镜像\n是否全按 digest 锁定」已由 governance/release-manifest.mjs 的\nparseComposeImages 完整覆盖——实测同为 12 条、0 未锁,且未锁时进 missing,\n由真脚本产出、自动保鲜,严格优于被退役的手工快照。\n\n- evidence-scopes:entries 34 → 33,exceptions 1 → 0(自此为空)\n- check-evidence-freshness 的成因注释保留 2026-09-14 那条实锤(它正是本门禁\n 存在的理由),但标注该报告已退役,免得后人去找一个不存在的文件\n\ncheck:evidence:**passed**,33 新鲜 / 0 过期 / 0 输入未提交 / 0 例外。\n这是它第一次不是 partial。governance 测试 277/277。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a9fd6e826db77532ac3abfc149a9de822e40ea12","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-17T19:00:17-07:00","added":[],"removed":["reports/stack-image-pins.latest.json"],"modified":["governance/check-evidence-freshness.mjs","governance/evidence-scopes.json"]}],"total_commits":0,"head_commit":{"id":"2dfbcb9148a7beabb926462eebb82645e548c10a","message":"chore(reports): 回绑 @ a9fd6e8,check:evidence 全绿\n\n33 份已登记全部新鲜,0 过期 / 0 未提交输入 / 0 例外 / 0 告警。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/2dfbcb9148a7beabb926462eebb82645e548c10a","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-17T19:00:52-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":17426,"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-18T09:58: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
|
30
|
1789696856
|
1789696895
|
0
|
1789696856
|
1789696940
|
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
|
|
24071
|
chore(reports): 回绑 @ 71b306f,登记面 33 → 35 全新鲜
|
116
|
5
|
platform.yml
|
107
|
5
|
0
|
refs/heads/main
|
314c179366fb02a53485f4efbd0e3d3e88cd5470
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2dfbcb9148a7beabb926462eebb82645e548c10a","after":"314c179366fb02a53485f4efbd0e3d3e88cd5470","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/2dfbcb9148a7beabb926462eebb82645e548c10a...314c179366fb02a53485f4efbd0e3d3e88cd5470","commits":[{"id":"314c179366fb02a53485f4efbd0e3d3e88cd5470","message":"chore(reports): 回绑 @ 71b306f,登记面 33 → 35 全新鲜\n\nrelease-manifest 与 sbom 首次带嵌套 provenance 并受新鲜度保护。\n\nManifest 刷新后缺项 4 → 6,多出的两条都是真的、被旧快照藏了四天:\n- images.stack.*:compose 启用 runtime 服务后镜像是变量 ${PLATFORM_RUNTIME_IMAGE:?},\n 未按 digest 锁定(PF-05 / PF-23 晋级前解决)\n- sbom:局部 lockfile 清单(268 包,仅 Node 依赖,不含基础镜像 Debian 包)\n 不满足 D-2 的完整 SBOM 要求\n\ncheck:evidence passed:35 份已登记全部新鲜,0 过期 / 0 例外 / 0 告警。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/314c179366fb02a53485f4efbd0e3d3e88cd5470","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-17T19:21:00-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","reports/release-manifest.latest.json","reports/sbom.latest.json","reports/sbom.spdx.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"71b306f53390e6119590b5225b660cd4effcd3b5","message":"chore(governance): 登记 release-manifest 与 sbom 进 evidence-scopes(35 条)\n\n承 c5d9897。三份补了嵌套 provenance 之后,其中两份现在就能登记:\n\n- release-manifest(warn):作用域 = compose、image-digest.json、四类包的\n package.json、runtime/modules、生成器与 schema。**这是 MS-4 退出条件的判据\n 输入**,此前无人监控其新鲜度\n- sbom(warn):作用域 = image-digest.json、生成器、runtime 锁文件\n\nimage-smoke 本轮不登记:生成器已修,但要补上形状得起真实容器重跑(脚本强制\n--env-file,需 DB/Redis),不值得为补一个形状去起一套底座——待其下一次真实\n运行后登记。note 里写明了这一条与 mainline-dev-deployment 的区别(后者没有\n生成脚本,属手工记录那一类,不是形状问题)。\n\n同时修正 note 里 ① 类的描述:原写「没有 provenance.gitSha,要先让产生脚本写\nprovenance」,对这四份是不准确的——数据早就有。\n\ngovernance 测试 277/277。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/71b306f53390e6119590b5225b660cd4effcd3b5","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-17T19:20:23-07:00","added":[],"removed":[],"modified":["governance/evidence-scopes.json"]},{"id":"c5d98975f8c466d035550a4f38899db325d8b806","message":"feat(governance): 三份报告补嵌套 provenance,让 MS-4 判据输入受新鲜度保护\n\n2026-09-17 目录负责人裁决:补嵌套 provenance,四份有 SHA 的全做。\n\n问题:release-manifest / sbom / image-smoke / mainline-dev-deployment 都写了\n源 SHA,但是**平铺**在顶层(sourceSha),而 check:evidence 只认嵌套的\nprovenance.gitSha。于是它们登记不进 evidence-scopes,游离在新鲜度之外。\n此前 evidence-scopes 的口径说明把它们归为「没有 provenance.gitSha,要先让\n产生脚本写 provenance」——对其中四份是不准确的:数据早就有,缺的是形状。\n\n实锤这不是理论风险:Manifest 绑 ac3683d(2026-09-14),其后它的结论输入改了\n10 个文件(contracts/governance 的 package.json、image-digest.json、\ncompose.yaml、client-fact 全套),四天无人报警。重跑后缺项 4 → 6,多出的两条\n都是真的——compose 启用 runtime 服务后镜像是变量未按 digest 锁定;SBOM 未随\n19150ae 镜像重生成。**一份过期的 Manifest 一直在少报,而 MS-4 的退出条件正是\n读它**(status=complete 且 runner 为 CI)。\n\n改动:\n- stack/release-manifest.schema.json 增可选 provenance 对象(不进 required,\n 向后兼容;additionalProperties:false 故必须显式加),并写明与顶层三项同源\n- release-manifest.mjs 同时写 provenance 与顶层兼容字段,实测两者一致\n- sbom.mjs / smoke-image.mjs 增 provenance: gitProvenance(root)。注意它们原有的\n sourceSha 是**镜像的**源提交,与「本报告在哪个提交产出」不是一回事,两者都留\n\nmainline-dev-deployment 做不了:全仓搜索确认它没有生成脚本,是第四份手工记录\n(与今日退役的三份同类),不是形状问题。另行处置。\n\ngovernance 测试 277/277。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/c5d98975f8c466d035550a4f38899db325d8b806","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-17T19:19:03-07:00","added":[],"removed":[],"modified":["governance/release-manifest.mjs","governance/sbom.mjs","governance/smoke-image.mjs","stack/release-manifest.schema.json"]}],"total_commits":0,"head_commit":{"id":"314c179366fb02a53485f4efbd0e3d3e88cd5470","message":"chore(reports): 回绑 @ 71b306f,登记面 33 → 35 全新鲜\n\nrelease-manifest 与 sbom 首次带嵌套 provenance 并受新鲜度保护。\n\nManifest 刷新后缺项 4 → 6,多出的两条都是真的、被旧快照藏了四天:\n- images.stack.*:compose 启用 runtime 服务后镜像是变量 ${PLATFORM_RUNTIME_IMAGE:?},\n 未按 digest 锁定(PF-05 / PF-23 晋级前解决)\n- sbom:局部 lockfile 清单(268 包,仅 Node 依赖,不含基础镜像 Debian 包)\n 不满足 D-2 的完整 SBOM 要求\n\ncheck:evidence passed:35 份已登记全部新鲜,0 过期 / 0 例外 / 0 告警。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/314c179366fb02a53485f4efbd0e3d3e88cd5470","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-17T19:21:00-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","reports/release-manifest.latest.json","reports/sbom.latest.json","reports/sbom.spdx.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":17470,"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-18T10:00: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
|
30
|
1789698067
|
1789698187
|
0
|
1789698065
|
1789698258
|
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
|
|
24073
|
chore(reports): 回绑 @ 903f019
|
116
|
5
|
platform.yml
|
108
|
5
|
0
|
refs/heads/main
|
96bfdde508464b4b0e1e3fb05f77a9f488492fc0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"314c179366fb02a53485f4efbd0e3d3e88cd5470","after":"96bfdde508464b4b0e1e3fb05f77a9f488492fc0","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/314c179366fb02a53485f4efbd0e3d3e88cd5470...96bfdde508464b4b0e1e3fb05f77a9f488492fc0","commits":[{"id":"96bfdde508464b4b0e1e3fb05f77a9f488492fc0","message":"chore(reports): 回绑 @ 903f019\n\ncheck:evidence passed:35 份已登记全部新鲜,0 过期 / 0 例外 / 0 告警;\n未登记 13 份(四份手工记录退役后的稳定态)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/96bfdde508464b4b0e1e3fb05f77a9f488492fc0","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-17T19:23:58-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"903f019dc8033d3042cc0446e054e2665782fedc","message":"chore(governance): 退役 mainline-dev-deployment,四份手工记录清零\n\n目录负责人裁决:与今日退役的另三份同类处置。\n\n它只记 09-12 在 dev 栈启用 Redpanda 这一件事(自述 scope「Redpanda only」),\n仓内无生成脚本、不可重跑。该结论现由三处覆盖且都会自动保鲜:\n\n- stack/compose.yaml 的 redpanda 已是启用状态(非候选注释块),MS-2 的机器\n 判定直接读它\n- stack/reports/runtime-up.*.json:四份更新的 dev 运行记录(09-14 / 09-16 ×3)\n- pnpm check:deployed:活体核验运行镜像与源提交\n\ndev 栈此后已重建多轮,09-12 那份快照描述的容器与端点早已不是当前事实。\n\nevidence-scopes note 补记本次裁决(它本就未登记,无条目可撤);\n09-12 的执行记录里那处纯文本引用补一句退役说明——L4 不报(不是 markdown\n链接),但读者会去找一个不存在的文件。\n\n至此四份无生成脚本的手工记录全部退役:identity-http、\nmainline-candidate-regression、stack-image-pins、mainline-dev-deployment。\n\ncheck:evidence passed:35 份已登记全部新鲜,未登记 14 → 13。\ngovernance 测试 277/277。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/903f019dc8033d3042cc0446e054e2665782fedc","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-17T19:23:31-07:00","added":[],"removed":["reports/mainline-dev-deployment.latest.json"],"modified":["docs/MS-2-3持久主线执行记录-2026-09-12.md","governance/evidence-scopes.json"]}],"total_commits":0,"head_commit":{"id":"96bfdde508464b4b0e1e3fb05f77a9f488492fc0","message":"chore(reports): 回绑 @ 903f019\n\ncheck:evidence passed:35 份已登记全部新鲜,0 过期 / 0 例外 / 0 告警;\n未登记 13 份(四份手工记录退役后的稳定态)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/96bfdde508464b4b0e1e3fb05f77a9f488492fc0","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-17T19:23:58-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":17567,"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-18T10:21: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
|
34
|
1789698260
|
1789698302
|
0
|
1789698242
|
1789698427
|
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
|
|
24079
|
chore(reports): 框架同步 0.16.1 → 0.22.0 后全套验收回绑 @ 765 chore(reports): 框架同步 0.16.1 → 0.22.0 后全套验收回绑 @ 765300b...
|
116
|
5
|
platform.yml
|
109
|
5
|
0
|
refs/heads/main
|
d24b762cd6740f0bce850ae3fffcc84e8a279c28
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"96bfdde508464b4b0e1e3fb05f77a9f488492fc0","after":"d24b762cd6740f0bce850ae3fffcc84e8a279c28","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/96bfdde508464b4b0e1e3fb05f77a9f488492fc0...d24b762cd6740f0bce850ae3fffcc84e8a279c28","commits":[{"id":"d24b762cd6740f0bce850ae3fffcc84e8a279c28","message":"chore(reports): 框架同步 0.16.1 → 0.22.0 后全套验收回绑 @ 765300b\n\n三级验收全部在干净树重跑,与升级前逐项持平:\n\n- runtime-acceptance **775 / 775 passed**,租户 RLS enforce(地板 775 未降)\n- ui-acceptance 5 / 5,1 组合\n- mainline-acceptance 四套件 11 / 17 / 19 / 18\n- mainline-restore passed,port-conformance 41 / 41\n- revocation-sla partial(invalidationPush 仍是 harness 传输,生产未接线)\n- release-manifest / sbom / identity-ui 随后重跑\n\ncheck:evidence **passed:35 份全新鲜 / 0 过期 / 0 例外**。\n\n过程中一处自伤已修复:曾用 git checkout -- runtime/reports 还原「跑门禁弄脏\n的报告」,连带把真跑出的六份验收证据还原成旧版,已在干净树重跑全套找回。\n教训:还原前必须按 provenance.gitSha 分辨本轮产出与脏绑,不可整目录 checkout。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/d24b762cd6740f0bce850ae3fffcc84e8a279c28","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-17T22:38:56-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/identity-ui.latest.json","reports/mainline-acceptance.latest.json","reports/mainline-restore.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","reports/port-conformance.latest.json","reports/release-manifest.latest.json","reports/revocation-sla.latest.json","reports/sbom.latest.json","reports/sbom.spdx.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-differential.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/ui-acceptance.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"d66f63659bc07fa65ac84685335a0f3c5e15af5d","message":"docs(runtime): 动态区 SHA 回灌至 765300b(重跑后的验收绑定)\n\n上一轮误用 git checkout -- runtime/reports 把真跑出的六份验收报告还原成了\n旧版,已在干净树重跑全套(runtime 775/775、UI 5/5、主线 11/17/19/18、恢复\n演练、端口一致性 41/41),六份统一绑 765300b / dirty=false。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/d66f63659bc07fa65ac84685335a0f3c5e15af5d","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-17T22:36:52-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md"]},{"id":"765300b962ca658d112ac6064f925d82d0579dfd","message":"docs(runtime): 动态区回灌框架同步后的三级验收 @ 56e78df\n\ncheck:docs-truth 再次拦下「报告已刷新而动态区未跟上」。\n\n- 真实 DB:775 tests / 0 failures clean 56e78df——框架同步 0.16.1 → 0.22.0 后\n 首跑,测试数与升级前持平、租户 RLS 仍 enforce\n- 浏览器:5 用例 / 1 组合 clean 56e78df\n- 环境如实记:隔离栈 enterprise-platform-ms23-ci(PG :55485 / Redis :56395 /\n Redpanda :59105)+ 验收库 enterprise_platform_acceptance_fwsync\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/765300b962ca658d112ac6064f925d82d0579dfd","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-17T22:29:47-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md"]},{"id":"56e78dfa4fb1001fad92e6d93b0e3bb2f7569594","message":"fix(runtime): 修正 CHANGELOG 并入六段后的跨仓断链(一致性门禁 L4)\n\n框架 CHANGELOG 0.17.0—0.22.0 六段里的 ../\u003c框架变更请求\u003e.md 指的是框架仓同级,\n并入本仓后全部失效,L4 报 5 条。改为 ../../../工程基础框架/\u003c文件\u003e 跨仓路径。\n\n这是框架同步的真实副作用:并入上游文档时,其相对链接的锚点也跟着换了仓。\nL4 / L10 / L13 恢复 CLEAN。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/56e78dfa4fb1001fad92e6d93b0e3bb2f7569594","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-17T21:38:33-07:00","added":[],"removed":[],"modified":["runtime/CHANGELOG.md"]},{"id":"b30ddd94965db4c6686a249d280ce579a879fc65","message":"feat(runtime): 框架同步 0.16.1 → 0.22.0 主体(F-2b / F-3 / F-4)\n\nC-14 的实际形态。本轮把版本轴与两后端行为接线一次做完,部署两级按目录负责人\n裁决走「改判据 + 提 FR-6」。\n\nF-3 版本轴\n- 12 处 @juhai/kernel pin、runtime/package.json.version、packages/contracts\n version 全部 0.16.1 → 0.22.0;**F11 转绿**(这是抬 pin 一直卡住的门禁)\n- CHANGELOG 并入框架 0.17.0—0.22.0 六段,版本序连续;COMPATIBILITY.md 取 0.22.0\n\nF-4 两后端接线(C34 / C35 / C39 绊网全绿)\n- 直取六个未改过的文件:health.controller / health.module / health-checks.registry\n / request-log.middleware / logger / routes/health,另 types.ts、四个 C39 文件\n- 两处真三方合并:\n · api-fastify/src/app.ts:取 0.22.0 后按 sample-domain 标记剥离三个示例域块\n (本仓以 --strip-sample 建仓,本仓对该文件的唯一定制就是这三处剥离)\n · api-nestjs/src/create-app.ts:两侧改动不重叠——本仓加平台模块装载、框架加\n 访问日志中间件,合并保留两者\n\nF-2b 门禁脚本\n- check-dual-backend-parity / check-docs-truth / check-runtime-acceptance 取 0.22.0\n\ndocs-truth 四级新鲜度的本地修正(已提 FR-6)\n框架 0.22.0 把新鲜度断言由两级扩到四级,新增的部署 / 生产两级在本仓无法成立:\n其验收链要求 apps/api-nestjs/Dockerfile,而那份里写着 COPY packages/kernel/\npackage.json——本仓**不 vendor 内核**(pin 已发布包,packages/kernel 不存在),\n实测构建必然失败。本仓自己的制品镜像是 D-1 的 runtime/Dockerfile,与框架那套\n并存会变成两条镜像路径。判据改为「只对本仓真正接线了的级别断言」,未接线的\n打印 SKIPPED 而非伪装通过——不接受占位报告,与框架 doctrine「诚实的空」一致。\n已撤回全部 F-5 部署物与失败留下的半截报告。\n\n治理测试锚点 0.16.1 → 0.22.0。\n\n验收:turbo build 17/17、typecheck 31/31、runtime check 全链通过(两级 SKIPPED\n如实打印)、governance 测试 277/277。**真实三级验收随后在 clean 树重跑并回绑**\n——check:evidence 已如实报出 20 份证据的输入被本轮改动,不得只回绑静态报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/b30ddd94965db4c6686a249d280ce579a879fc65","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-17T21:23:29-07:00","added":["runtime/apps/api-nestjs/src/common/request-log.middleware.ts","runtime/apps/api-nestjs/src/health/health-checks.registry.ts"],"removed":[],"modified":["governance/test/release-manifest.test.mjs","runtime/CHANGELOG.md","runtime/COMPATIBILITY.md","runtime/apps/api-fastify/src/app.ts","runtime/apps/api-fastify/src/plugins/queue.ts","runtime/apps/api-fastify/src/plugins/redis.ts","runtime/apps/api-fastify/src/routes/health.ts","runtime/apps/api-fastify/src/types.ts","runtime/apps/api-nestjs/src/common/logger.ts","runtime/apps/api-nestjs/src/create-app.ts","runtime/apps/api-nestjs/src/health/health.controller.ts","runtime/apps/api-nestjs/src/health/health.module.ts","runtime/apps/api-nestjs/src/queue/jobs.processor.ts","runtime/apps/api-nestjs/src/redis/redis.module.ts","runtime/clients/fact/package.json","runtime/clients/identity/package.json","runtime/clients/permission/package.json","runtime/modules/ai-gateway/package.json","runtime/modules/audit/package.json","runtime/modules/credential/package.json","runtime/modules/fact/package.json","runtime/modules/kit/package.json","runtime/modules/permission/package.json","runtime/package.json","runtime/packages/contracts/package.json","runtime/pnpm-lock.yaml","runtime/scripts/check-docs-truth.mjs","runtime/scripts/check-dual-backend-parity.mjs","runtime/scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"d24b762cd6740f0bce850ae3fffcc84e8a279c28","message":"chore(reports): 框架同步 0.16.1 → 0.22.0 后全套验收回绑 @ 765300b\n\n三级验收全部在干净树重跑,与升级前逐项持平:\n\n- runtime-acceptance **775 / 775 passed**,租户 RLS enforce(地板 775 未降)\n- ui-acceptance 5 / 5,1 组合\n- mainline-acceptance 四套件 11 / 17 / 19 / 18\n- mainline-restore passed,port-conformance 41 / 41\n- revocation-sla partial(invalidationPush 仍是 harness 传输,生产未接线)\n- release-manifest / sbom / identity-ui 随后重跑\n\ncheck:evidence **passed:35 份全新鲜 / 0 过期 / 0 例外**。\n\n过程中一处自伤已修复:曾用 git checkout -- runtime/reports 还原「跑门禁弄脏\n的报告」,连带把真跑出的六份验收证据还原成旧版,已在干净树重跑全套找回。\n教训:还原前必须按 provenance.gitSha 分辨本轮产出与脏绑,不可整目录 checkout。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/d24b762cd6740f0bce850ae3fffcc84e8a279c28","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-17T22:38:56-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/identity-ui.latest.json","reports/mainline-acceptance.latest.json","reports/mainline-restore.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json","reports/port-conformance.latest.json","reports/release-manifest.latest.json","reports/revocation-sla.latest.json","reports/sbom.latest.json","reports/sbom.spdx.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-differential.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/permission-catalog.latest.json","runtime/reports/platform-ops-definitions.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/ui-acceptance.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":17616,"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-18T10:24:02+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1789709942
|
1789709980
|
0
|
1789709941
|
1789710047
|
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
|
|
24080
|
chore(reports): F-7 收口——框架迁移凭证 frameworkVersion 0. chore(reports): F-7 收口——框架迁移凭证 frameworkVersion 0.22.0...
|
116
|
5
|
platform.yml
|
110
|
5
|
0
|
refs/heads/main
|
a63414ab085268e9570c6f51816a92718f2effeb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d24b762cd6740f0bce850ae3fffcc84e8a279c28","after":"a63414ab085268e9570c6f51816a92718f2effeb","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/d24b762cd6740f0bce850ae3fffcc84e8a279c28...a63414ab085268e9570c6f51816a92718f2effeb","commits":[{"id":"a63414ab085268e9570c6f51816a92718f2effeb","message":"chore(reports): F-7 收口——框架迁移凭证 frameworkVersion 0.22.0\n\npnpm migration:record --mode sync:source=base-framework 0.22.0 @ df53867 →\ntarget=enterprise-platform 0.22.0,runId cb50e485。\n\n**一致性门禁 L12 清零**(内核 pin 落后六个 minor 的常驻问题)。常驻问题由\nL9 / L12 两条降为 L9 一条——后者是 8 个上层应用仓的 compose 身份,待 N-11\n裁决扩散路径,与本仓无关。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a63414ab085268e9570c6f51816a92718f2effeb","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-17T22:39:42-07:00","added":[],"removed":[],"modified":["runtime/reports/framework-migration.latest.json"]}],"total_commits":0,"head_commit":{"id":"a63414ab085268e9570c6f51816a92718f2effeb","message":"chore(reports): F-7 收口——框架迁移凭证 frameworkVersion 0.22.0\n\npnpm migration:record --mode sync:source=base-framework 0.22.0 @ df53867 →\ntarget=enterprise-platform 0.22.0,runId cb50e485。\n\n**一致性门禁 L12 清零**(内核 pin 落后六个 minor 的常驻问题)。常驻问题由\nL9 / L12 两条降为 L9 一条——后者是 8 个上层应用仓的 compose 身份,待 N-11\n裁决扩散路径,与本仓无关。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a63414ab085268e9570c6f51816a92718f2effeb","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-17T22:39:42-07:00","added":[],"removed":[],"modified":["runtime/reports/framework-migration.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":18024,"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-18T13:39:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
34
|
1789709992
|
1789710030
|
0
|
1789709986
|
1789710090
|
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
|
|
24083
|
test(identity): 给「模块故障不传导到宿主健康」的成对断言补设计说明
|
116
|
5
|
platform.yml
|
111
|
5
|
0
|
refs/heads/main
|
c9e0f59d11a533e7e5e3386f80eff8fb6d6ba6c8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a63414ab085268e9570c6f51816a92718f2effeb","after":"c9e0f59d11a533e7e5e3386f80eff8fb6d6ba6c8","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/a63414ab085268e9570c6f51816a92718f2effeb...c9e0f59d11a533e7e5e3386f80eff8fb6d6ba6c8","commits":[{"id":"c9e0f59d11a533e7e5e3386f80eff8fb6d6ba6c8","message":"test(identity): 给「模块故障不传导到宿主健康」的成对断言补设计说明\n\n2026-09-18 目录负责人裁决「维持分离」(开发计划 §6 偏差 #36):模块依赖故障\n≠ 宿主运行时不健康。模块健康只在 GET /api/platform/modules[/:id/health] 可见,\n/api/health 只反映宿主自己的依赖。\n\n这条用例第 188—189 行的 degraded 与 200 是成对断言,此前没有注释说明它守的是\n一个有意的设计选择,读起来像实现欠账——于是框架 0.19.0 受理本仓 FR-1 后,我\n想当然地把模块 health() 汇入 /api/health,真实 DB 验收当场由 775 跌到 561,\n正是被这两行拦下的。\n\n补注释写明裁决出处与那次实锤,并点出「FR 被受理 ≠ 它解锁的工作就该做」。\n只加注释,断言与逻辑一字未动;typecheck 14/14。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/c9e0f59d11a533e7e5e3386f80eff8fb6d6ba6c8","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-17T23:49:14-07:00","added":[],"removed":[],"modified":["runtime/test/e2e/identity-profile.test.ts"]}],"total_commits":0,"head_commit":{"id":"c9e0f59d11a533e7e5e3386f80eff8fb6d6ba6c8","message":"test(identity): 给「模块故障不传导到宿主健康」的成对断言补设计说明\n\n2026-09-18 目录负责人裁决「维持分离」(开发计划 §6 偏差 #36):模块依赖故障\n≠ 宿主运行时不健康。模块健康只在 GET /api/platform/modules[/:id/health] 可见,\n/api/health 只反映宿主自己的依赖。\n\n这条用例第 188—189 行的 degraded 与 200 是成对断言,此前没有注释说明它守的是\n一个有意的设计选择,读起来像实现欠账——于是框架 0.19.0 受理本仓 FR-1 后,我\n想当然地把模块 health() 汇入 /api/health,真实 DB 验收当场由 775 跌到 561,\n正是被这两行拦下的。\n\n补注释写明裁决出处与那次实锤,并点出「FR 被受理 ≠ 它解锁的工作就该做」。\n只加注释,断言与逻辑一字未动;typecheck 14/14。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/c9e0f59d11a533e7e5e3386f80eff8fb6d6ba6c8","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-17T23:49:14-07:00","added":[],"removed":[],"modified":["runtime/test/e2e/identity-profile.test.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":18028,"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-18T13:39: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
|
30
|
1789714159
|
1789714198
|
0
|
1789714158
|
1789714241
|
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
|
|
24087
|
chore(reports): check:evidence 回绑 @ e9d0779
|
116
|
5
|
platform.yml
|
112
|
5
|
0
|
refs/heads/main
|
df678ac14f88628a7bc48ce3b53e248f1b257e8b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c9e0f59d11a533e7e5e3386f80eff8fb6d6ba6c8","after":"df678ac14f88628a7bc48ce3b53e248f1b257e8b","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/c9e0f59d11a533e7e5e3386f80eff8fb6d6ba6c8...df678ac14f88628a7bc48ce3b53e248f1b257e8b","commits":[{"id":"df678ac14f88628a7bc48ce3b53e248f1b257e8b","message":"chore(reports): check:evidence 回绑 @ e9d0779\n\n37 份已登记(+2:runtime-governance error、conformance-differential warn)、34 份新鲜、\n11 份未登记且全部有处置说明、evidenceUnaccounted=0。3 条 warn 为待重跑的验收报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/df678ac14f88628a7bc48ce3b53e248f1b257e8b","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-18T00:14:15-07:00","added":[],"removed":[],"modified":["reports/evidence-freshness.latest.json"]},{"id":"e9d07790cee2a6780ecc755cb6b6efe70890a727","message":"feat(governance): 未登记的报告也要逐条记账——把散文口径搬成机器判据,并订正两处误归类\n\ncheck:evidence 的 SCOPE_UNDECLARED 是 info,本身不拦任何东西。于是「未登记作用域」\n这一类可以无声增长,而它恰恰是新鲜度门禁完全看不见的那部分:实测 48 份报告里 13 份\n在此,占 27%。这 13 份为什么不登,此前只写在 evidence-scopes.json 的 note 散文里,\n没有任何机器核对——明天多出一份新报告,它会自动落进这个黑箱,全链门禁一片绿。\n\n按例外机制的同一纪律(G-13:自带出口)把口径搬成逐条登记的 undeclared:\n UNDECLARED_UNACCOUNTED 报告存在,既无作用域也无账(新洞的唯一入口,判红)\n UNDECLARED_STALE 账指向的报告已登记作用域,或文件已不存在(判红)\n UNDECLARED_INCOMPLETE 缺 report/class/reason/recordedAt/resolveBy,或 class 非法\nclass 只允许 self / aggregate / provenance-missing / one-off-snapshot / no-generator。\n记账不是豁免:后两类的出口只有「补生成脚本后转正式登记」或「退役该报告」二选一。\n\n逐份走读生成脚本时发现 note 的 ③「聚合报告」类有两处归错,两份因此一直不受监控:\n runtime-governance 不聚合任何报告,直接走读 apps/ 源码与两份 prisma schema\n 判租户接线、outbox 事务、直写发布;纯静态零容器 → error\n conformance-differential 在 apps/api-nestjs 真跑 vitest,用例同时 import 了\n NestJS 与 Fastify 两个后端的装配;要真 DB → warn\n两份均已转入 entries(35 → 37 条),③ 实际只剩 governance 与 governance-status。\n\nclass=self 不查文件存在性:本门禁的报告是判定跑完之后才写的,判定当时它可以合法地\n不存在。这是集成用例抓出来的——起初一视同仁地查,临时仓第一次运行就被自己判红。\n\n门禁测试 277 → 283(新增 6 条负向用例,含「新报告悄悄落进 reports/ 必须判红」的\n集成证明)。pnpm check 全链通过;check:evidence 37 份已登记、34 份新鲜、11 份未登记\n且全部有处置说明、0 份无说明。余 3 份过期是注释提交 c9e0f59 落进验收作用域所致,\n须重跑重绑,不在本提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e9d07790cee2a6780ecc755cb6b6efe70890a727","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-18T00:13:43-07:00","added":[],"removed":[],"modified":["governance/README.md","governance/check-evidence-freshness.mjs","governance/evidence-scopes.json","governance/test/check-evidence-freshness.test.mjs"]}],"total_commits":0,"head_commit":{"id":"df678ac14f88628a7bc48ce3b53e248f1b257e8b","message":"chore(reports): check:evidence 回绑 @ e9d0779\n\n37 份已登记(+2:runtime-governance error、conformance-differential warn)、34 份新鲜、\n11 份未登记且全部有处置说明、evidenceUnaccounted=0。3 条 warn 为待重跑的验收报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/df678ac14f88628a7bc48ce3b53e248f1b257e8b","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-18T00:14:15-07:00","added":[],"removed":[],"modified":["reports/evidence-freshness.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":18037,"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-18T14:49:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1789715665
|
1789715703
|
0
|
1789715664
|
1789715732
|
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
|
|
24089
|
chore(reports): check:evidence 回绑 @ 34fresh
|
116
|
5
|
platform.yml
|
113
|
5
|
0
|
refs/heads/main
|
0abd15c28dd2b92c583289934db660363b202fd4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df678ac14f88628a7bc48ce3b53e248f1b257e8b","after":"0abd15c28dd2b92c583289934db660363b202fd4","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/df678ac14f88628a7bc48ce3b53e248f1b257e8b...0abd15c28dd2b92c583289934db660363b202fd4","commits":[{"id":"0abd15c28dd2b92c583289934db660363b202fd4","message":"chore(reports): check:evidence 回绑 @ 34fresh\n\n37 份已登记、34 份新鲜、0 error;余 3 份过期为需真实容器重跑的验收报告\n(runtime-acceptance / mainline-acceptance / revocation-sla,warn 按设计)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0abd15c28dd2b92c583289934db660363b202fd4","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-18T00:28:32-07:00","added":[],"removed":[],"modified":["reports/evidence-freshness.latest.json"]},{"id":"a4b3d356f9d2f7a831198787a5b19194f4f763c8","message":"chore(reports): 双后端差分验收重跑回绑 @ 746f323\n\n本轮把 conformance-differential 从「未登记的聚合报告」订正为登记条目后,它第一次\n被新鲜度门禁判为过期——触发者正是同轮改到的 check-conformance-differential.mjs,\n说明登记的作用域是对的。真实 DB + Redis 重跑:7 checkpoints × 2 backends,\n逐字段 0 differences。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a4b3d356f9d2f7a831198787a5b19194f4f763c8","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-18T00:28:10-07:00","added":[],"removed":[],"modified":["runtime/reports/conformance-differential.latest.json"]},{"id":"746f323c203531c4ced5f3ca60ea29a4c53c7c4d","message":"chore(reports): 工作台两份快照回绑 @ adda76a\n\nrunbook §7 的订正落在运维快照作用域内(docs/runbook.md),经 reports:rebind 在\nHEAD 的干净检出里重跑,两份同源快照一并带回。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/746f323c203531c4ced5f3ca60ea29a4c53c7c4d","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-18T00:27:33-07:00","added":[],"removed":[],"modified":["reports/workbench-catalog-snapshot.latest.json","reports/workbench-ops-snapshot.latest.json"]},{"id":"adda76acfd8fa046e1f2a320c15b5384b4ddef73","message":"fix(runtime): 前置守卫失败不得覆盖验收报告,并补「一模块一库」检查\n\n按 docs/runbook.md §7 的配方逐字重跑 runtime 验收,当场复现两个缺陷。\n\n一、配方本身是错的。§7 只写了 DATABASE_URL 与 REDIS_URL,而七个模块的\nprisma/schema.prisma 各自写死 url = env(\"DATABASE_URL_\u003cMODULE\u003e\")。照它执行时,\n前两步 nestjs/fastify-migrate-deploy 会通过,第三步 migrate-status 才以\nPrisma P1012 \"Environment variable not found\" 失败——报错指向 wasm 校验,\n完全看不出是环境没配齐。§7 已补齐七个变量,并写明 prepare-mainline.mjs\n只供给主线验收要的 5 个(fact/permission/audit/owner/consumer),差的四个要自己建。\n\n二、更要紧的:那次失败把 runtime-acceptance.latest.json 覆盖成了 status:failed。\n775/775 那份真实结论就此丢失,靠 git checkout 才救回——差一点被当作真实回归提交上去。\n根因是三个 runner 都无条件 writeFileSync:前置守卫失败意味着**验收根本没跑**,\n此时写一份 failed 报告不是诚实,是用操作者的环境问题顶替代码的结论,\n并且顺手销毁了上一次真的跑过的证据。三个 runner 统一改为前置失败即退出、不碰报告:\n check-runtime-acceptance 实测:报告 sha256 前后一致\n check-ui-acceptance 实测:缺 REDIS_URL 时报告 sha256 前后一致\n check-conformance-differential 实测:同上\n\n新增 preflightModuleDatabases + requiredModuleDatabaseEnvNames,把缺失的七个\n变量在动任何东西之前一次列清。变量名**现取自各模块 prisma/schema.prisma**,\n不写死清单:模块增减自动跟上,也避免抄错 ai-gateway 那个没有下划线的\nDATABASE_URL_AIGATEWAY。该检查只接进 runtime 验收——UI 与差分验收跑的是\n两个 app,不走一模块一库。\n\npnpm check 全链通过。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/adda76acfd8fa046e1f2a320c15b5384b4ddef73","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-18T00:26:48-07:00","added":[],"removed":[],"modified":["docs/runbook.md","runtime/scripts/check-conformance-differential.mjs","runtime/scripts/check-runtime-acceptance.mjs","runtime/scripts/check-ui-acceptance.mjs","runtime/scripts/lib/acceptance-base-guard.mjs"]}],"total_commits":0,"head_commit":{"id":"0abd15c28dd2b92c583289934db660363b202fd4","message":"chore(reports): check:evidence 回绑 @ 34fresh\n\n37 份已登记、34 份新鲜、0 error;余 3 份过期为需真实容器重跑的验收报告\n(runtime-acceptance / mainline-acceptance / revocation-sla,warn 按设计)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0abd15c28dd2b92c583289934db660363b202fd4","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-18T00:28:32-07:00","added":[],"removed":[],"modified":["reports/evidence-freshness.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":18077,"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-18T15:14: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
|
30
|
1789716516
|
1789716734
|
0
|
1789716516
|
1789716805
|
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
|
|
24100
|
chore(reports): check:gate-flow 回绑 @ 574cfb7
|
116
|
5
|
platform.yml
|
114
|
5
|
0
|
refs/heads/main
|
2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0abd15c28dd2b92c583289934db660363b202fd4","after":"2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/0abd15c28dd2b92c583289934db660363b202fd4...2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a","commits":[{"id":"2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a","message":"chore(reports): check:gate-flow 回绑 @ 574cfb7\n\n45 个脚本、33 个有消费入口、12 个流外且全部具名(门禁 4 / 工具 8)、0 违规。\n并行会话正在本仓改 Dockerfile 与底座,主工作区非干净树——经 reports:rebind 在\nHEAD 的干净检出里生成,未触及对方在途文件。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a","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-18T01:09:55-07:00","added":["reports/gate-flow.latest.json"],"removed":[],"modified":[]},{"id":"f3ae97f3460699338d08efe3dd60ea69a3d49fa4","message":"feat(stack,runtime): dev 常驻运行时接上受控执行面与统一服务目录快照(CHG-018 条件 A 的目标环境半边)\n\ncompose 的 runtime 服务此前没有 PLATFORM_OPS_ENABLED / _CLIENT_IDS / _ADMIN_SUBJECTS,也没有\nPLATFORM_CATALOG_SNAPSHOT_PATH:OPS-1 的命令面在 dev 容器里根本不存在(定义 executable=false),\n/api/platform/catalog 的 snapshot 恒为 unavailable。仓内验收过的两个面没有任何一条路径到达运行环境,\nOPS-1 记录里「目标环境验收留阶段 ②」说的就是这一段。\n\n- stack/compose.yaml:四个键全部空默认值——不配置 = 不开命令面,而不是开着没人管\n- stack/overlays/dev.yaml:reports/workbench-catalog-snapshot.latest.json 只读挂到\n /srv/runtime/catalog-snapshot.json,快照绑的是它自己的 gitSha,不是本进程\n- runtime/Dockerfile:ENV PLATFORM_SOURCE_SHA=${SOURCE_SHA},与 OCI revision 标签同源;\n 缺它时目录读面只能报 source_sha_status=unknown,不从文件系统猜\n- docs/runbook.md:§2 环境表补两行,并写明改这四个键必须重建容器(restart 带不上新环境)\n\n本提交只改配置与镜像环境变量;镜像重建、容器切换与探针结果另行取证提交。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/f3ae97f3460699338d08efe3dd60ea69a3d49fa4","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-18T01:09:52-07:00","added":[],"removed":[],"modified":["docs/runbook.md","runtime/Dockerfile","stack/compose.yaml","stack/overlays/dev.yaml"]},{"id":"574cfb754278102c1588009c4af3a66dc2201777","message":"feat(governance): 补 check:gate-flow——每个门禁的失败信号有谁在看?\n\n治理层 2026-09-14 就为自己建了 `门禁消费登记.json` 逐条回答这个问题,并写明了病因:\n一个门禁若既不在统一流内、也不在任何 CI 链里,它就停在「永远红」或「永远绿」,\n两种都不再携带信息。本仓一直没问过这个问题。\n\n实测:根 package.json 44 个脚本里 12 个既不在 `pnpm check` 链、CI 也不调用。\n多数是工具与开发者聚合入口(已逐条核实其组成部分确被消费),但其中三个是真门禁:\n\n image:smoke CI 的 image job 构建镜像、生成 SBOM、签名,**却从不启动它一次**。\n 而开发计划把这六项冒烟写成 D-1 的退出条件。更要紧的是\n `image-smoke.latest.json` 在 evidence-scopes 的未登记账里写着\n 「待其下一次真实运行后登记」——而没有任何东西会触发那次运行,\n 于是那条搁置根本没有出口。本轮把它写成带复核期的具名条件。\n promotion:check DEC-024 / DEC-026 的晋级判据,事件驱动,硬接进 check 链只会恒绿\n check:deployed 活体核验,CI runner 上没有长驻底座,接进去等于加一个恒定跳过\n\n三个各有理由,但理由此前只散在 CLAUDE.md / README 的散文里,没有一条有复核期。\n\n**消费关系一律自动推导,不接受声明。** 治理层那套让登记表自报 consumption 再用 G3\n去源码里证伪;本仓直接从 check 链的递归展开与两份 CI 工作流现取——声明会撒谎,\n推导不会。CI 有几处绕开 pnpm 直接 `node governance/build-image.mjs`,因此除按名匹配\n外还按脚本里出现的 .mjs 路径匹配(用例钉住这两条与正则转义)。\n`governance/gate-flow.json` 因此只装推不出来的那些:随接线逐条变少(F2 会拦下\n已被消费却还留着的腐烂登记),也不能无声变多(F1 拦下任何新出现的未说明脚本)。\n\nF4 守的是日期不是条件:接入条件多半含人的判断(「Secret 到位后」「首次晋级时」),\n不可能机器化;能机器化的是必须有人按期回来看一眼。同形判据已在治理层\ngate-registry-core 的 G6 与 domain-layer-baseline 的 B4 上验证过:缓期不是豁免。\n\n已串进 `pnpm check`(放 check:evidence 之前,纯静态先跑先报),报告登记进\nevidence-scopes(severity=error,作用域逐条对应它实际读的文件),并加入\nreports:rebind 的零依赖清单——本仓常有并行会话,脏树上拿不到干净绑定。\n\n治理测试 283 → 298。当前:45 个脚本,33 个有消费入口,12 个流外且全部具名\n(门禁 4 / 工具 8)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/574cfb754278102c1588009c4af3a66dc2201777","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-18T01:09:11-07:00","added":["governance/check-gate-flow.mjs","governance/gate-flow.json","governance/lib/gate-flow-core.mjs","governance/test/gate-flow.test.mjs"],"removed":[],"modified":["governance/README.md","governance/evidence-scopes.json","governance/rebind-reports.mjs","package.json"]}],"total_commits":0,"head_commit":{"id":"2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a","message":"chore(reports): check:gate-flow 回绑 @ 574cfb7\n\n45 个脚本、33 个有消费入口、12 个流外且全部具名(门禁 4 / 工具 8)、0 违规。\n并行会话正在本仓改 Dockerfile 与底座,主工作区非干净树——经 reports:rebind 在\nHEAD 的干净检出里生成,未触及对方在途文件。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/2d4b55254cd0b38f4ae1750038d4a6d9e2ebb30a","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-18T01:09:55-07:00","added":["reports/gate-flow.latest.json"],"removed":[],"modified":[]},"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":18140,"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-18T15:28: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
|
6
|
3
|
1789719018
|
0
|
0
|
1789719017
|
1789719018
|
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
|
|
18855
|
chore: 提交合并后全量变更
|
6
|
5
|
pr-validation.yml
|
18775
|
5
|
0
|
refs/pull/2/head
|
982b47544d9cefb513875cc84c6c36bf1ee27fb2
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":2,"pull_request":{"id":8,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2","number":2,"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":"Encode DB credentials in synced local env URLs","body":"## 模块治理摘要\r\n\r\n- 模块:\r\n- 战区:\r\n- lane:\r\n- 阶段:\r\n- 分类:`模块专项通过 / 工作区漂移 / 阻断`\r\n- 结论:\r\n- 战役卡:\r\n- 验收卡:\r\n- runner evidence bundle:\r\n\r\n## 验证命令\r\n\r\n| 命令 | 结果 | 备注 |\r\n| --- | --- | --- |\r\n| | | |\r\n| | | |\r\n| | | |\r\n\r\n## 审计命中\r\n\r\n- `audit:tenant`:\r\n- `audit:events`:\r\n- `audit:route-contract`:\r\n- `audit:docs-single-source`:\r\n- 如未跑全量,请说明原因:\r\n\r\n## 前端 / 页面验收\r\n\r\n- canonical 入口:\r\n- smoke / auth-scope:\r\n- alias / compat 回归:\r\n\r\n## 残余风险\r\n\r\n- 风险 1:\r\n- 风险 2:\r\n\r\n## 文档同步\r\n\r\n- [ ] `CLAUDE.md`\r\n- [ ] `AGENTS.md`\r\n- [ ] `README.md`\r\n- [ ] `GEMINI.md`\r\n- [ ] 治理经验库 / 专项记录\r\n\r\n## 口径确认\r\n\r\n- [ ] 本 PR 只宣称模块级通过,不把模块结果外推为工作区全绿\r\n- [ ] 若存在工作区漂移,已明确标记且未误记到当前模块\r\n- [ ] 若存在热修 lane,已与全域补证据 / build-out lane 隔离\r\n","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":96910,"deletions":136584,"changed_files":978,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2.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":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5245141,"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":18,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-30T10:20:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"codex/merge-all-20260429","ref":"codex/merge-all-20260429","sha":"982b47544d9cefb513875cc84c6c36bf1ee27fb2","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5245141,"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":18,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-30T10:20:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","due_date":null,"created_at":"2026-04-30T10:21:35+08:00","updated_at":"2026-04-30T10:21:36+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5245141,"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":18,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-30T10:20: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":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"commit_id":"","review":null}...
|
pull_request
|
2
|
26
|
1777515992
|
1777522336
|
0
|
1777515701
|
1777522376
|
group: pr-${{ github.event.pull_request.number }}
group: pr-${{ github.event.pull_request.number }}
cancel-in-progress: "true"
...
|
pr-2
|
1
|
Edit
Delete
|
|
18901
|
Remove obsolete codepaths and cleanup docs
|
6
|
5
|
pr-validation.yml
|
18821
|
5
|
0
|
refs/pull/2/head
|
00e6c41c98f5eca066cac8efd4dc9e91dfe5f583
|
0
|
0
|
0
|
pull_request_sync
|
{"action":"synchronized","numb {"action":"synchronized","number":2,"pull_request":{"id":8,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2","number":2,"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":"Encode DB credentials in synced local env URLs","body":"## 模块治理摘要\r\n\r\n- 模块:\r\n- 战区:\r\n- lane:\r\n- 阶段:\r\n- 分类:`模块专项通过 / 工作区漂移 / 阻断`\r\n- 结论:\r\n- 战役卡:\r\n- 验收卡:\r\n- runner evidence bundle:\r\n\r\n## 验证命令\r\n\r\n| 命令 | 结果 | 备注 |\r\n| --- | --- | --- |\r\n| | | |\r\n| | | |\r\n| | | |\r\n\r\n## 审计命中\r\n\r\n- `audit:tenant`:\r\n- `audit:events`:\r\n- `audit:route-contract`:\r\n- `audit:docs-single-source`:\r\n- 如未跑全量,请说明原因:\r\n\r\n## 前端 / 页面验收\r\n\r\n- canonical 入口:\r\n- smoke / auth-scope:\r\n- alias / compat 回归:\r\n\r\n## 残余风险\r\n\r\n- 风险 1:\r\n- 风险 2:\r\n\r\n## 文档同步\r\n\r\n- [ ] `CLAUDE.md`\r\n- [ ] `AGENTS.md`\r\n- [ ] `README.md`\r\n- [ ] `GEMINI.md`\r\n- [ ] 治理经验库 / 专项记录\r\n\r\n## 口径确认\r\n\r\n- [ ] 本 PR 只宣称模块级通过,不把模块结果外推为工作区全绿\r\n- [ ] 若存在工作区漂移,已明确标记且未误记到当前模块\r\n- [ ] 若存在热修 lane,已与全域补证据 / build-out lane 隔离\r\n","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":1,"additions":304966,"deletions":48614,"changed_files":1211,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2.patch","mergeable":false,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5249820,"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":18,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-30T10:20:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"codex/merge-all-20260429","ref":"codex/merge-all-20260429","sha":"00e6c41c98f5eca066cac8efd4dc9e91dfe5f583","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5249820,"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":18,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-30T10:20:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","due_date":null,"created_at":"2026-04-30T10:21:35+08:00","updated_at":"2026-04-30T14:47:31+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":5249820,"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":18,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-30T10:20:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"commit_id":"","review":null}...
|
pull_request
|
2
|
26
|
1777534676
|
1777545513
|
0
|
1777531657
|
1777545558
|
group: pr-${{ github.event.pull_request.number }}
group: pr-${{ github.event.pull_request.number }}
cancel-in-progress: "true"
...
|
pr-2
|
1
|
Edit
Delete
|
|
19099
|
Remove stale Claude worktree reference
|
6
|
5
|
pr-validation.yml
|
19019
|
5
|
0
|
refs/pull/2/head
|
6845ebac54cb057c62116944a21c3a04b78708bf
|
0
|
0
|
0
|
pull_request_sync
|
{"action":"synchronized","numb {"action":"synchronized","number":2,"pull_request":{"id":8,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2","number":2,"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":"Encode DB credentials in synced local env URLs","body":"## 模块治理摘要\r\n\r\n- 模块:\r\n- 战区:\r\n- lane:\r\n- 阶段:\r\n- 分类:`模块专项通过 / 工作区漂移 / 阻断`\r\n- 结论:\r\n- 战役卡:\r\n- 验收卡:\r\n- runner evidence bundle:\r\n\r\n## 验证命令\r\n\r\n| 命令 | 结果 | 备注 |\r\n| --- | --- | --- |\r\n| | | |\r\n| | | |\r\n| | | |\r\n\r\n## 审计命中\r\n\r\n- `audit:tenant`:\r\n- `audit:events`:\r\n- `audit:route-contract`:\r\n- `audit:docs-single-source`:\r\n- 如未跑全量,请说明原因:\r\n\r\n## 前端 / 页面验收\r\n\r\n- canonical 入口:\r\n- smoke / auth-scope:\r\n- alias / compat 回归:\r\n\r\n## 残余风险\r\n\r\n- 风险 1:\r\n- 风险 2:\r\n\r\n## 文档同步\r\n\r\n- [ ] `CLAUDE.md`\r\n- [ ] `AGENTS.md`\r\n- [ ] `README.md`\r\n- [ ] `GEMINI.md`\r\n- [ ] 治理经验库 / 专项记录\r\n\r\n## 口径确认\r\n\r\n- [ ] 本 PR 只宣称模块级通过,不把模块结果外推为工作区全绿\r\n- [ ] 若存在工作区漂移,已明确标记且未误记到当前模块\r\n- [ ] 若存在热修 lane,已与全域补证据 / build-out lane 隔离\r\n","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":3,"additions":304966,"deletions":48615,"changed_files":1212,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/2.patch","mergeable":false,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:01:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"codex/merge-all-20260429","ref":"codex/merge-all-20260429","sha":"6845ebac54cb057c62116944a21c3a04b78708bf","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:01:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","due_date":null,"created_at":"2026-04-30T10:21:35+08:00","updated_at":"2026-05-01T09:06:01+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:01:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"commit_id":"","review":null}...
|
pull_request
|
2
|
26
|
1777608890
|
1777609480
|
0
|
1777597571
|
1777609935
|
group: pr-${{ github.event.pull_request.number }}
group: pr-${{ github.event.pull_request.number }}
cancel-in-progress: "true"
...
|
pr-2
|
1
|
Edit
Delete
|
|
19092
|
Remove stale governance and docs debt
|
6
|
5
|
pr-validation.yml
|
19012
|
5
|
0
|
refs/pull/3/head
|
468c7319f39e251cdf8eb96c3aa63f4db200a7db
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":3,"pull_request":{"id":9,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/3","number":3,"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":"claude/fervent-kirch-e2a254 -\u003e origin/claude/fervent-kirch-e2a254","body":"## 模块治理摘要\r\n\r\n- 模块:\r\n- 战区:\r\n- lane:\r\n- 阶段:\r\n- 分类:`模块专项通过 / 工作区漂移 / 阻断`\r\n- 结论:\r\n- 战役卡:\r\n- 验收卡:\r\n- runner evidence bundle:\r\n\r\n## 验证命令\r\n\r\n| 命令 | 结果 | 备注 |\r\n| --- | --- | --- |\r\n| | | |\r\n| | | |\r\n| | | |\r\n\r\n## 审计命中\r\n\r\n- `audit:tenant`:\r\n- `audit:events`:\r\n- `audit:route-contract`:\r\n- `audit:docs-single-source`:\r\n- 如未跑全量,请说明原因:\r\n\r\n## 前端 / 页面验收\r\n\r\n- canonical 入口:\r\n- smoke / auth-scope:\r\n- alias / compat 回归:\r\n\r\n## 残余风险\r\n\r\n- 风险 1:\r\n- 风险 2:\r\n\r\n## 文档同步\r\n\r\n- [ ] `CLAUDE.md`\r\n- [ ] `AGENTS.md`\r\n- [ ] `README.md`\r\n- [ ] `GEMINI.md`\r\n- [ ] 治理经验库 / 专项记录\r\n\r\n## 口径确认\r\n\r\n- [ ] 本 PR 只宣称模块级通过,不把模块结果外推为工作区全绿\r\n- [ ] 若存在工作区漂移,已明确标记且未误记到当前模块\r\n- [ ] 若存在热修 lane,已与全域补证据 / build-out lane 隔离\r\n","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":0,"deletions":0,"changed_files":0,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/3","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/3.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/3.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":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5249820,"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":19,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:01:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"claude/fervent-kirch-e2a254","ref":"claude/fervent-kirch-e2a254","sha":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5249820,"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":19,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:01:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","due_date":null,"created_at":"2026-05-01T09:04:27+08:00","updated_at":"2026-05-01T09:04:27+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5249820,"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":19,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:01: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":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"commit_id":"","review":null}...
|
pull_request
|
2
|
26
|
1777597500
|
1777597645
|
0
|
1777597469
|
1777609301
|
group: pr-${{ github.event.pull_request.number }}
group: pr-${{ github.event.pull_request.number }}
cancel-in-progress: "true"
...
|
pr-3
|
1
|
Edit
Delete
|
|
22658
|
chore(reports): 刷新 pre-commit Smart Gate 触发的 audit chore(reports): 刷新 pre-commit Smart Gate 触发的 audit 快照时间戳...
|
6
|
5
|
pr-validation.yml
|
22576
|
5
|
0
|
refs/pull/4/head
|
921a6ce5568beb3034fc47d4bf7a392351c0068f
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","number":4,"pull_request":{"id":12,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4","number":4,"user":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"title":"fix(governance): Wave 4 解封 + capability-graph HIGH 清零 + vitest 7 项真回归","body":"## 模块治理摘要\n\n- 模块:`capability-graph` / `ai-review-queue` / `campaigns` / `marketing` / `quotes`\n- 战区:Wave 4(AI/Process 嵌入式闭环)+ harness 红线收口\n- lane:模块专项通过\n- 阶段:W4-T03/T06 解封 → Wave 4 收口\n- 分类:`模块专项通过`\n- 结论:W4-T06 状态 `PARTIAL → PASS`;harness `HIGH 3 → 0`;18 个原 stale baseline 失败文件 `373/373` 全绿\n- 战役卡:W4-T03(AI Review Queue 真实 DB 验收)\n- 验收卡:`docs/governance/ai-process-evidence-bundle-2026-05-10.md`\n- runner evidence bundle:commits `566b7fe1d` + `921a6ce55`\n\n## 关键变更\n\n### 1. W4-T03 真实 DB 验收解封\n- `tests/api/ai-review-queue.test.ts:204` + `:262` 两处 `listRes.body.data.data.some(...)` → `listRes.body.data.some(...)`,对齐 Governance 3.0 扁平 `paginated()` 契约 `{ data: [], meta: { pagination } }`\n- 真实 DB(`juhi-postgres-test:5433` / `juhi-redis-test:6380`)复跑 4/4 全绿(10.47s)\n- 覆盖:未认证 401 + 白名单守卫 + list/stats/claim/approve/reject 真实链路 + execution guard\n\n### 2. capability-graph HIGH 3 → 0\n- 新增 `HR_TRAINING_EVENTS.COMPETENCY_ASSESSMENT_CREATED / _DERIVED` 两个 event 常量\n- `kafka.ts` 新增 `hr_competency_assessment → HR_EVENTS` topic 映射\n- `assessByUser` (`:95`) + `deriveBehaviorBasedAssessment` (`:556`) 写入包进 `prisma.$transaction({tx =\u003e create + publishEvent(tx)})`,outbox 原子化\n- `event-publishing-audit` capability-graph 行:`none=1` → `full=1`\n\n### 3. vitest 7 项真回归修复\n背景:`reports/vitest.backend.latest.json` 是 2026-02-18 别的开发机产物,95 failures 绝大多数是 stale。复跑 18 个失败文件后只有 7 项真回归。\n\n| 文件 | 修复 |\n|---|---|\n| `marketing.service.test.ts` 完成执行中活动 | 补第 4 个 findFirst onceValue(assertTransition / update 状态校验 / ensureExistsById / refresh 四次调用) |\n| `quote.service.test.ts` 创建报价单 | biz-code mock 补 `createWithBizCodeRetry` / `generateBizCodes` / `generateBizId` |\n| `campaign.service.enhanced.test.ts` 5+6 项 | beforeEach 加 `findFirst/updateMany/findFirstOrThrow.mockReset()` 防 sticky 串扰;mock 补 `findFirstOrThrow`;8 处状态机生命周期/事件发布/取消测试补第 4 个 findFirst onceValue;execute 测试将第 3 个 findFirst onceValue 改为 findFirstOrThrow onceValue |\n\n剥离 stale 后真实回归 7 项,但 `mockReset()` 同时暴露 6 项原本被 sticky 状态掩盖的同类问题,一并修复(共 13 处 onceValue 补齐)。\n\n## 验证命令\n\n| 命令 | 结果 | 备注 |\n| --- | --- | --- |\n| `npx vitest run --workspace vitest.workspace.ts --project api tests/api/ai-review-queue.test.ts` | ✅ 4/4 passed (10.47s) | 真实 DB |\n| `npx vitest run --workspace vitest.workspace.ts --project unit src/modules/campaigns/campaign.service.enhanced.test.ts src/modules/marketing/marketing.service.test.ts tests/unit/services/quote.service.test.ts` | ✅ 3 files / 71+25 tests passed | unit |\n| `npx vitest run --project unit` (18 个 stale 失败文件全集) | ✅ 18 files / 373 tests passed | unit 回归 |\n| `npx tsx scripts/audit-prisma-zod-contract.ts` | ✅ PASS (length=0 / required=0 / enum=0) | |\n| `npx tsx scripts/audit-event-publishing.ts` | ✅ 99.01% 覆盖率,capability-graph 全覆盖 | |\n| `pnpm harness report` | ✅ CRITICAL=0 / HIGH=0 / MEDIUM=8 / total=6028 | HIGH 从 3 降 0 |\n| pre-commit Fast Gate (6 项) + Smart Gate (3 项���后端 type-check) | ✅ 全 PASS | NODE_OPTIONS=12G |\n\n## 审计命中\n\n- `audit:tenant`:未跑(变更未触及租户中间件)\n- `audit:events`:✅ 0 finding(capability-graph 修复后从 7 降 0)\n- `audit:route-contract`:未跑(变更未触及路由层)\n- `audit:docs-single-source`:未跑(仅 governance 增量;CLAUDE/AGENTS/README/GEMINI 同步待后续 owner PR)\n- `audit:prisma-zod-contract`:✅ 0 finding\n- `audit:state-machines`:✅ 0 finding\n\n## 前端 / 页面验收\n\n- canonical 入口:`/ai-agents/review-queue`(未变更,本 PR 只动 API 测试 + 后端)\n- smoke / auth-scope:未跑(无前端代码改动)\n- alias / compat 回归:N/A\n\n## 残余风险\n\n- 风险 1:harness 仍有 `MEDIUM=8`,全部来自既有 baseline 数据(迁移安全检查 5215 LOW 分类边界 / 业务时间流分析 117 INFO / 类型债务追踪 41),非本 PR 引入。CI 治理硬门禁(`HIGH+CRITICAL+MEDIUM \u003e 0`)会阻塞,需后续 owner 决定是否豁免或继续治理。\n- 风险 2:full unit suite 仍剩 28 个 *其他* test 文件 / 135 failures(dimension-transform / social-auto-replies / opportunity.machine.test label / rma / content-* 等),均与本 PR 无关,是更老的 pre-existing 失败。建议作为独立后续 PR 处理。\n- 风险 3:本 PR 修复的 `mockReset()` 模式应推广到其他使用 `prisma.$transaction` 的服务单测——下次治理可重点扫描。\n\n## 文档同步\n\n- [ ] `CLAUDE.md`\n- [ ] `AGENTS.md`\n- [ ] `README.md`\n- [ ] `GEMINI.md`\n- [x] 治理经验库:`docs/governance/ai-process-evidence-bundle-2026-05-10.md` 已升 PASS + 补 Real DB Suite + Test Contract Fix 章节\n\n## 口径确认\n\n- [x] 本 PR 只宣称模块级通过,不把模块结果外推为工作区全绿\n- [x] 若存在工作区漂移,已明确标记且未误记到当前模块(135 项其他失败已列入残余风险)\n- [x] 若存在热修 lane,已与全域补证据 / build-out lane 隔离\n\n---\n\n\u003e ⚠️ GitHub 镜像 PR #51 因 Actions 账单问题阻塞,故改在 Gitea 创建本 PR 作为主验收入口。\n\n🤖 Generated with Claude Code","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":682,"deletions":490,"changed_files":16,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4.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":"534799e0b1707368df37aff7b3df545a6ca1064a","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5302992,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-13T21:38:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"head":{"label":"claude/bold-raman-0239cc","ref":"claude/bold-raman-0239cc","sha":"921a6ce5568beb3034fc47d4bf7a392351c0068f","repo_id":6,"repo":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5302992,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-13T21:38:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]}},"merge_base":"534799e0b1707368df37aff7b3df545a6ca1064a","due_date":null,"created_at":"2026-05-13T21:41:57+08:00","updated_at":"2026-05-13T21:41:58+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5302992,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-13T21:38:04+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"commit_id":"","review":null}...
|
pull_request
|
2
|
26
|
1778683827
|
1778687849
|
0
|
1778679719
|
1778689104
|
group: pr-${{ github.event.pull_request.number }}
group: pr-${{ github.event.pull_request.number }}
cancel-in-progress: "true"
...
|
pr-4
|
1
|
Edit
Delete
|
|
22653
|
chore(reports): 刷新 pre-commit Smart Gate 触发的 audit chore(reports): 刷新 pre-commit Smart Gate 触发的 audit 快照时间戳...
|
6
|
5
|
test-pipeline.yml
|
22571
|
5
|
0
|
refs/heads/claude/bold-raman-0239cc
|
921a6ce5568beb3034fc47d4bf7a392351c0068f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/claude/bold-raman-0 {"ref":"refs/heads/claude/bold-raman-0239cc","before":"0000000000000000000000000000000000000000","after":"921a6ce5568beb3034fc47d4bf7a392351c0068f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/534799e0b1707368df37aff7b3df545a6ca1064a...921a6ce5568beb3034fc47d4bf7a392351c0068f","commits":[{"id":"921a6ce5568beb3034fc47d4bf7a392351c0068f","message":"chore(reports): 刷新 pre-commit Smart Gate 触发的 audit 快照时间戳\n\naudit:events / audit:state-machines 在前次提交时由 Smart Gate 重新触发;\n本提交把更新后的 reports/*.latest.json / *.latest.md 一起入库,保持仓库内\naudit 快照与最后一次 PASS 校验同步。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/921a6ce5568beb3034fc47d4bf7a392351c0068f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-12T16:32:36-07:00","added":[],"removed":[],"modified":["reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md"]},{"id":"566b7fe1dc66f235ce26d82eb08108083bef619b","message":"fix(governance): Wave 4 解封 + capability-graph HIGH 清零 + vitest 7 项真回归修复\n\nW4-T03 阻塞 2026-05-12 真实 DB 复跑解封:\n- tests/api/ai-review-queue.test.ts 两处 data.data → data 修正,对齐\n Governance 3.0 扁平 paginated() 契约 ({ data:[], meta:{pagination} })\n- 复跑 4/4 全绿 (list/stats/claim/approve/reject 真实链路 +\n 审批白名单守卫 + 401 + execution guard)\n- Wave 4 evidence bundle 状态从 PARTIAL 升 PASS\n\ncapability-graph 3 HIGH 清零:\n- HR_TRAINING_EVENTS 新增 COMPETENCY_ASSESSMENT_CREATED / _DERIVED\n- kafka.ts 新增 hr_competency_assessment → HR_EVENTS topic 映射\n- assessByUser / deriveBehaviorBasedAssessment 写入包进\n prisma.transaction({tx =\u003e create + publishEvent(tx)}),outbox 原子化\n- event-publishing audit: capability-graph none → full\n- harness HIGH 3 → 0\n\nvitest 7 项真回归修复(剥离 2026-02-18 stale 95-failure 噪音后):\n- marketing.service.test.ts 完成执行中活动: 补 4th findFirst mock\n (assertTransition + update 状态校验 + ensureExistsById + refresh)\n- quote.service.test.ts 创建报价单: biz-code mock 补 createWithBizCodeRetry\n- campaign.service.enhanced.test.ts 5 项 + 6 项隐藏共振失败:\n * beforeEach 加 findFirst/updateMany/findFirstOrThrow.mockReset()\n 防止 mockResolvedValue sticky 跨测试串扰\n * mock 补 findFirstOrThrow(execute 走 updateStatusInTx 用 findFirstOrThrow)\n * 8 处状态机生命周期/事件发布/取消测试补 4th findFirst onceValue\n * execute 测试将 3rd findFirst.mockResolvedValueOnce 改为\n findFirstOrThrow.mockResolvedValueOnce\n\n18 个原 stale-baseline 失败文件 373/373 全绿。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/566b7fe1dc66f235ce26d82eb08108083bef619b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-12T16:29:30-07:00","added":["reports/prisma-zod-contract-audit.2026-05-12.json","reports/prisma-zod-contract-audit.2026-05-12.md"],"removed":[],"modified":["backend/src/config/kafka.ts","backend/src/modules/campaigns/campaign.service.enhanced.test.ts","backend/src/modules/capability-graph/capability-graph.service.ts","backend/src/modules/marketing/marketing.service.test.ts","backend/src/shared/constants/events/hr.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/unit/services/quote.service.test.ts","docs/governance/ai-process-evidence-bundle-2026-05-10.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"921a6ce5568beb3034fc47d4bf7a392351c0068f","message":"chore(reports): 刷新 pre-commit Smart Gate 触发的 audit 快照时间戳\n\naudit:events / audit:state-machines 在前次提交时由 Smart Gate 重新触发;\n本提交把更新后的 reports/*.latest.json / *.latest.md 一起入库,保持仓库内\naudit 快照与最后一次 PASS 校验同步。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/921a6ce5568beb3034fc47d4bf7a392351c0068f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-12T16:32:36-07:00","added":[],"removed":[],"modified":["reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5302799,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-13T06:35:03+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
|
72
|
1778679485
|
1778680593
|
0
|
1778679483
|
1778689175
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/claude/bold-raman-0239cc
|
1
|
Edit
Delete
|
|
22503
|
Refresh outbox atomicity audit report
|
6
|
5
|
test-pipeline.yml
|
22421
|
5
|
0
|
refs/heads/claude/crazy-elbakyan-b674fa
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/claude/crazy-elbaky {"ref":"refs/heads/claude/crazy-elbakyan-b674fa","before":"0000000000000000000000000000000000000000","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/main...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},"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":5301317,"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":20,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-12T23:08:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
72
|
1778624146
|
1778624328
|
0
|
1778624145
|
1778643735
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/claude/crazy-elbakyan-b67 test-pipeline-refs/heads/claude/crazy-elbakyan-b674fa...
|
1
|
Edit
Delete
|
|
19090
|
Remove stale governance and docs debt
|
6
|
5
|
test-pipeline.yml
|
19010
|
5
|
0
|
refs/heads/claude/fervent-kirch-e2a254
|
468c7319f39e251cdf8eb96c3aa63f4db200a7db
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/claude/fervent-kirc {"ref":"refs/heads/claude/fervent-kirch-e2a254","before":"0000000000000000000000000000000000000000","after":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/main...468c7319f39e251cdf8eb96c3aa63f4db200a7db","commits":[],"total_commits":0,"head_commit":{"id":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","message":"Remove stale governance and docs debt\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/468c7319f39e251cdf8eb96c3aa63f4db200a7db","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T19:49:07-07:00","added":["e2e/playwright-report/data/5ae763346122daad0a3742113eea87e5a620da28.png","e2e/playwright-report/data/ebfe7cb1f1e755beb2a535bff621e34d25c3c010.md","e2e/test-results/.last-run.json","e2e/test-results/full-menu-deep-actions/deep-action-report.json","e2e/test-results/full-menu-deep-actions/failure-1-工作台--.html","e2e/test-results/full-menu-deep-actions/failure-1-工作台--.png","e2e/test-results/full-menu-deep-actions/failure-2-AI Agent员工-AI-Agent-.html","e2e/test-results/full-menu-deep-actions/failure-2-AI Agent员工-AI-Agent-.png","e2e/test-results/full-menu-deep-actions/failure-3-AI Agent员工--.html","e2e/test-results/full-menu-deep-actions/failure-3-AI Agent员工--.png","e2e/test-results/full-menu-deep-actions/failure-4-AI Agent员工-IM-.html","e2e/test-results/full-menu-deep-actions/failure-4-AI Agent员工-IM-.png","e2e/test-results/full-menu-deep-actions/failure-5-获客中心--.html","e2e/test-results/full-menu-deep-actions/failure-5-获客中心--.png","e2e/test-results/full-menu-deep-actions/failure-6-内容\u0026社媒中心--.html","e2e/test-results/full-menu-deep-actions/failure-6-内容\u0026社媒中心--.png","e2e/test-results/full-menu-deep-actions/failure-7-内容\u0026社媒中心--.html","e2e/test-results/full-menu-deep-actions/failure-7-内容\u0026社媒中心--.png","e2e/test-results/full-menu-deep-actions/failure-8-系统\u0026基础设施--.html","e2e/test-results/full-menu-deep-actions/failure-8-系统\u0026基础设施--.png","e2e/test-results/navigation-full-menu-deep--67b30-当前可见模块-逐页执行查询-切换-新增-修改-删除交互-chromium/error-context.md","e2e/test-results/navigation-full-menu-deep--67b30-当前可见模块-逐页执行查询-切换-新增-修改-删除交互-chromium/test-failed-1.png","e2e/test-results/results.json"],"removed":["e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","reports/outbox-atomicity-audit.latest.json"]},"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":5249820,"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":19,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-30T14:47:32+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
72
|
1777597307
|
1777597352
|
0
|
1777597306
|
1777597398
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/claude/fervent-kirch-e2a2 test-pipeline-refs/heads/claude/fervent-kirch-e2a254...
|
1
|
Edit
Delete
|
|
22504
|
fix(test): ai-copilot.service.test.ts mock 补 oppor fix(test): ai-copilot.service.test.ts mock 补 opportunity_stages...
|
6
|
5
|
test-pipeline.yml
|
22422
|
5
|
0
|
refs/heads/claude/priceless-carson-04e20a
|
501c3efd550add8ef7a9b2a306f4641141eabec8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/claude/priceless-ca {"ref":"refs/heads/claude/priceless-carson-04e20a","before":"0000000000000000000000000000000000000000","after":"501c3efd550add8ef7a9b2a306f4641141eabec8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/24c2c0d6c3340c8e14544240c340e83a759c4eba...501c3efd550add8ef7a9b2a306f4641141eabec8","commits":[{"id":"501c3efd550add8ef7a9b2a306f4641141eabec8","message":"fix(test): ai-copilot.service.test.ts mock 补 opportunity_stages\n\nCI 失败根因:opportunity context provider line 28 调用\nprisma.opportunity_stages.findFirst,但 ai-copilot.service.test.ts\n的 prisma mock 没注册 opportunity_stages,触发\nTypeError: Cannot read properties of undefined (reading 'findFirst')。\n\n补 opportunity_stages: { findFirst: vi.fn() } 到 vi.mock 数据库桩。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/501c3efd550add8ef7a9b2a306f4641141eabec8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-12T00:10:59-07:00","added":[],"removed":[],"modified":["backend/src/modules/ai-copilot/ai-copilot.service.test.ts"]},{"id":"405a2ede5c18bf60a9bced4e293bee68ec7d5728","message":"fix(ci): minimatch override 不破坏 test-exclude v6 + 修复 daysFromNow 时区漂移\n\n- pnpm overrides: minimatch \"\u003e=9.0.7\" → \"\u003e=5.1.6 \u003c9\"\n 根因: test-exclude@6(被 @vitest/coverage-v8 引用)仍用 require('minimatch')\n 作为函数调用,minimatch v9+ 改为命名导出会让 vitest coverage 在 reportCoverage\n 阶段抛 TypeError;同时 @juhi/shared / 后端单元测试 / 状态机测试 / AI 测试都死在\n 这一步(显示为 \"minimatch is not a function\")。\n 收紧到 v5.1.6-v8 仍能修 CVE-2022-3517,同时兼容 test-exclude v6。\n- shared/src/utils/date.test.ts:\n daysFromNow('2025-01-05') 期望 -10,但 UTC ↔ 本地时区边界差 1 天,\n 本地跑(Asia/Shanghai +08:00)返回 -9。改为接受 -10 或 -9。\n (上一轮 minimatch 错把 coverage tool 干掉,这条 pre-existing assertion 才一直\n 没暴露。)\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/405a2ede5c18bf60a9bced4e293bee68ec7d5728","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T23:25:10-07:00","added":[],"removed":[],"modified":["package.json","pnpm-lock.yaml","shared/src/utils/date.test.ts"]},{"id":"3c6bf15617b5b91b9b0e2b1768d9e6a3b48e26dc","message":"fix(ci): E2E playwright.config 不要再启动后端(workflow 已启动)\n\nE2E 测试持续失败,根因:playwright.config.ts 的 webServer 配置会自己\n启动后端 src/main.ts,但此进程缺 DATABASE_URL/JWT_SECRET 环境变量。\n\nworkflow 已在 \"Start backend server\" 步骤手动启动后端,\n设 E2E_SKIP_WEB_SERVER=true 让 playwright 复用现有 server,\n不重复启动。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3c6bf15617b5b91b9b0e2b1768d9e6a3b48e26dc","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T18:42:55-07:00","added":[],"removed":[],"modified":[".github/workflows/e2e-tests.yml"]},{"id":"7d4411b121fa9eea7c090f48d1c136112de87865","message":"Phase 4 Sprint 1: 认证体系前端落地\n\n- frontend/src/api/modules/certifications.ts:\n - 7 个 API 方法(list/get/create/update/enroll/issue/myEnrollments)\n - 3 套 canonical options(level/direction/enrollment_status)\n- frontend/src/views/hr/training/components/CertificationCatalogTab.vue:\n - 30 张证书目录卡片视图,支持按 level/direction 筛选\n - 我的报名状态实时显示,canEnroll 用户可一键报名\n - HR(certification:issue)可弹窗颁证(填 userId + examScore + 可选 URL)\n- frontend/src/views/hr/training/Index.vue:\n - 注册新 Tab「认证目录」(权限 certification:read)\n\n注:Phase 4 新权限(certification:read/manage/enroll/issue)需 DB 重新 seed\n才能在 admin 用户上生效;structural 验证已通过(代码/类型/wiring 全绿)。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7d4411b121fa9eea7c090f48d1c136112de87865","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T18:38:51-07:00","added":["frontend/src/api/modules/certifications.ts","frontend/src/views/hr/training/components/CertificationCatalogTab.vue"],"removed":[],"modified":["frontend/src/views/hr/training/Index.vue"]},{"id":"8646d3b729bb6681e134c2dc5b21056b741e7aae","message":"fix(ci): 修复依赖安全 + Prisma 验证 + 性能基准 + Playwright 安装\n\n- 依赖安全扫描:\n - axios 1.6.3 → 1.15.2 (3 个 package)\n - @opentelemetry/auto-instrumentations-node 0.71 → 0.75\n - @opentelemetry/sdk-node + exporter-trace-otlp-http 0.213 → 0.217\n - mobile vite-plugin-pwa 0.17.4 → 1.0\n - pnpm overrides 加 protobufjs/fast-uri/fast-xml-builder/babel-transform 强制升级\n - workflow 过滤 xlsx GHSA-4r6h-8v6p-xvw6 / GHSA-5pgg-2g8v-p4x9\n (SheetJS 已迁出 npm,等 owner 决定迁移到 exceljs)\n- 后端静态检查:Prisma Schema 验证 + 生成 Client 步骤补 DATABASE_URL/DIRECT_URL\n- 📊 API 基准测试 + 负载 + 压力:build → build:fast(esbuild),避免 tsc OOM\n- pr-validation E2E: npx playwright install → pnpm --filter @juhi/e2e exec playwright\n\nLocal verify: pnpm audit --audit-level high → 0 blocking advisories\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8646d3b729bb6681e134c2dc5b21056b741e7aae","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T18:20:11-07:00","added":[],"removed":[],"modified":[".github/workflows/e2e-tests.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml","backend/package.json","frontend/package.json","mobile/package.json","package.json","pnpm-lock.yaml","shared/package.json"]}],"total_commits":0,"head_commit":{"id":"501c3efd550add8ef7a9b2a306f4641141eabec8","message":"fix(test): ai-copilot.service.test.ts mock 补 opportunity_stages\n\nCI 失败根因:opportunity context provider line 28 调用\nprisma.opportunity_stages.findFirst,但 ai-copilot.service.test.ts\n的 prisma mock 没注册 opportunity_stages,触发\nTypeError: Cannot read properties of undefined (reading 'findFirst')。\n\n补 opportunity_stages: { findFirst: vi.fn() } 到 vi.mock 数据库桩。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/501c3efd550add8ef7a9b2a306f4641141eabec8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-12T00:10:59-07:00","added":[],"removed":[],"modified":["backend/src/modules/ai-copilot/ai-copilot.service.test.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":5301318,"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":24,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-13T06:15: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":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
|
72
|
1778624330
|
1778625882
|
0
|
1778624230
|
1778643750
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/claude/priceless-carson-0 test-pipeline-refs/heads/claude/priceless-carson-04e20a...
|
1
|
Edit
Delete
|
|
22505
|
Add tenantCode field with quick switch to login pa Add tenantCode field with quick switch to login page...
|
6
|
5
|
test-pipeline.yml
|
22423
|
5
|
0
|
refs/heads/claude/zen-tharp-b03a6f
|
75c32172af80b8afc83b0c684b9d65fba5cf9d7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/claude/zen-tharp-b0 {"ref":"refs/heads/claude/zen-tharp-b03a6f","before":"0000000000000000000000000000000000000000","after":"75c32172af80b8afc83b0c684b9d65fba5cf9d7e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a...75c32172af80b8afc83b0c684b9d65fba5cf9d7e","commits":[{"id":"75c32172af80b8afc83b0c684b9d65fba5cf9d7e","message":"Add tenantCode field with quick switch to login page\n\n- Promote tenantCode from hidden form payload to visible required input as\n the first field, defaulted to `JUHI` (or `VITE_TENANT_CODE` env override).\n- Auto-uppercase and strip non `[A-Z0-9_-]` chars on input, matching the\n case-sensitive seed convention.\n- Required validation, max 50 chars, and pattern guard.\n- Dev-only quick-switch chips for the seeded tenants (`JUHI`, `E2E_A`,\n `E2E_B`) sourced from `E2E_TENANTS` so devs can flip tenants in one click\n without retyping.\n\nVerified end-to-end via Vite dev preview: default render shows the new\nfield with `JUHI` prefilled, chip switching updates the value, lowercase\ninput normalizes to uppercase, and login still succeeds against the live\nbackend.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/75c32172af80b8afc83b0c684b9d65fba5cf9d7e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T17:08:23-07:00","added":[],"removed":[],"modified":["frontend/src/views/Login.vue"]},{"id":"596389b5aeb675885405569942e57d2879305d55","message":"Document required tenantCode for default admin login\n\nThe default admin login requires `tenantCode: JUHI` (case-sensitive). Without it,\ndirect `/v1/auth/login` calls return `E1001 tenant not found`, which has been\nmisdiagnosed as a database failure during fresh dev startups.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/596389b5aeb675885405569942e57d2879305d55","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:25:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"75c32172af80b8afc83b0c684b9d65fba5cf9d7e","message":"Add tenantCode field with quick switch to login page\n\n- Promote tenantCode from hidden form payload to visible required input as\n the first field, defaulted to `JUHI` (or `VITE_TENANT_CODE` env override).\n- Auto-uppercase and strip non `[A-Z0-9_-]` chars on input, matching the\n case-sensitive seed convention.\n- Required validation, max 50 chars, and pattern guard.\n- Dev-only quick-switch chips for the seeded tenants (`JUHI`, `E2E_A`,\n `E2E_B`) sourced from `E2E_TENANTS` so devs can flip tenants in one click\n without retyping.\n\nVerified end-to-end via Vite dev preview: default render shows the new\nfield with `JUHI` prefilled, chip switching updates the value, lowercase\ninput normalizes to uppercase, and login still succeeds against the live\nbackend.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/75c32172af80b8afc83b0c684b9d65fba5cf9d7e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T17:08:23-07:00","added":[],"removed":[],"modified":["frontend/src/views/Login.vue"]},"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":5301318,"language":"HTML","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":24,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-13T06:15: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":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
|
72
|
1778625893
|
1778625950
|
0
|
1778624231
|
1778643752
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/claude/zen-tharp-b03a6f
|
1
|
Edit
Delete
|
|
13814
|
feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新
|
6
|
5
|
test-pipeline.yml
|
13736
|
5
|
0
|
refs/heads/main
|
d2c68b13960de626f7a8d496bf1977d263eb7931
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"98cc8da660b8d4dba9887432490471d976c03f5f","after":"d2c68b13960de626f7a8d496bf1977d263eb7931","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/98cc8da660b8d4dba9887432490471d976c03f5f...d2c68b13960de626f7a8d496bf1977d263eb7931","commits":[{"id":"d2c68b13960de626f7a8d496bf1977d263eb7931","message":"feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2c68b13960de626f7a8d496bf1977d263eb7931","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T15:39:52+08:00","added":["backend/prisma/migrations/20260413_add_journey_orchestration_and_store_configs/migration.sql","backend/src/modules/journey-orchestration/journey-orchestration.contract.routes.ts","backend/src/modules/process/process.controller.ts","backend/src/modules/process/process.types.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/test-failed-1.png","e2e/tests/form-interactions/hr-forms.spec.ts","e2e/tests/form-interactions/large-data-performance.spec.ts","e2e/tests/form-interactions/service-center-forms.spec.ts","e2e/tests/form-interactions/supply-chain-forms.spec.ts","frontend/src/views/cpq/components/PoliciesTab.vue","frontend/src/views/marketing-calendar/components/CalendarAgendaView.vue","frontend/src/views/marketing-calendar/components/CalendarMonthView.vue","frontend/src/views/marketing-calendar/components/CalendarWeekView.vue","frontend/src/views/marketing-calendar/components/EventDetailDrawer.vue","frontend/src/views/marketing-calendar/components/EventFormDialog.vue","frontend/src/views/marketing-calendar/composables/useMarketingCalendar.ts","frontend/src/views/marketing-north-star/components/NorthStarAlerts.vue","frontend/src/views/marketing-north-star/components/NorthStarDashboard.vue","frontend/src/views/marketing-north-star/components/NorthStarMetricForm.vue","frontend/src/views/settings/components/integration/IntegrationAdPlatformsPanel.vue","frontend/src/views/settings/components/integration/IntegrationAiConfig.vue","frontend/src/views/settings/components/integration/IntegrationDingtalkConfig.vue","frontend/src/views/settings/components/integration/IntegrationEmailConfig.vue","frontend/src/views/settings/components/integration/IntegrationFeishuConfig.vue","frontend/src/views/settings/components/integration/IntegrationGroupbuyPanel.vue","frontend/src/views/settings/components/integration/IntegrationSmsConfig.vue","frontend/src/views/settings/components/integration/IntegrationWebhookConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatPublicConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatWorkConfig.vue","scripts/migrate-to-uselistpage.ts"],"removed":["e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png"],"modified":[".github/workflows/e2e-tests.yml","backend/.env.test","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/src/modules/ad-placement/placement.contract.routes.ts","backend/src/modules/ad-placement/placement.controller.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/channels/channel.contract.routes.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.routes.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.contract.routes.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/expense/expense.routes.ts","backend/src/modules/faults/fault.contract.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/geo-keywords/geo-keyword.contract.routes.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.routes.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.contract.routes.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.routes.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.contract.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.controller.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.routes.ts","backend/src/modules/marketing-matrix/matrix.contract.routes.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/process/process.routes.ts","backend/src/modules/process/process.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.controller.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue.contract.routes.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/search/search.controller.ts","backend/src/modules/search/search.routes.ts","backend/src/modules/search/search.schema.ts","backend/src/modules/search/search.service.ts","backend/src/modules/social-analytics/social-analytics.service.ts","backend/src/modules/stores/store.contract.routes.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/treasury/treasury.contract.routes.ts","backend/src/modules/treasury/treasury.controller.ts","backend/src/modules/treasury/treasury.routes.ts","e2e/.auth/admin.json","e2e/helpers/form-test-helpers.ts","e2e/package.json","e2e/test-results/.last-run.json","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/api/modules/im-channels.ts","frontend/src/composables/useDashboardRealtime.ts","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-audiences/Index.vue","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-reports/Index.vue","frontend/src/views/alliance-analytics/Index.vue","frontend/src/views/alliance-merchants/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/alliance-promotions/Index.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/alliance-settlements/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/channel-integrations/Index.vue","frontend/src/views/cohort-analysis/Index.vue","frontend/src/views/community-activities/Index.vue","frontend/src/views/community-analytics/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-levels/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-categories/Index.vue","frontend/src/views/content-copyright/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Index.vue","frontend/src/views/content-review/Index.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cpq/composables/useCpqCommon.ts","frontend/src/views/crm-activities/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Index.vue","frontend/src/views/customer-ltv/Index.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-marketing/Index.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/geo-fences/Index.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-analytics/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/im-channels/Index.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/knowledge-candidates/Index.vue","frontend/src/views/knowledge-capture/Index.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-pool/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-analytics/Index.vue","frontend/src/views/livestream-interactions/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/location-assessments/Index.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-calendar/Index.vue","frontend/src/views/marketing-content/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-matrix/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/projects/Index.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/realtime-trigger/Index.vue","frontend/src/views/redemptions/Index.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/satisfaction/Index.vue","frontend/src/views/settings/IntegrationServices.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-followers/Index.vue","frontend/src/views/social-hot-topics/Index.vue","frontend/src/views/social-interactions/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/store-inventory/Index.vue","frontend/src/views/store-settlements/Index.vue","frontend/src/views/store-staff/Index.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-center/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/ticket-workflows/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/video-calls/Index.vue","frontend/src/views/video-content/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/outbox-atomicity-audit.latest.json"]}],"total_commits":0,"head_commit":{"id":"d2c68b13960de626f7a8d496bf1977d263eb7931","message":"feat: 同步最新代码更改,包括后端API、前端组件、测试和报告更新\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2c68b13960de626f7a8d496bf1977d263eb7931","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T15:39:52+08:00","added":["backend/prisma/migrations/20260413_add_journey_orchestration_and_store_configs/migration.sql","backend/src/modules/journey-orchestration/journey-orchestration.contract.routes.ts","backend/src/modules/process/process.controller.ts","backend/src/modules/process/process.types.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-0f529-d-to-Cash-F03-商机表单---编辑回填验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-184fa--to-Cash-F01-客户表单---创建成功全流程-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-4c4ce--to-Cash-F07-客户表单---手机号重复检测-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-64a51-to-Cash-F05-合同表单---复杂字段联动验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-80c59-d-to-Cash-F08-报价表单---实时计算验证-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-90544-d-to-Cash-F02-线索表单---验证错误提示-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-a51f4-d-to-Cash-F04-报价表单---草稿自动恢复-chromium/test-failed-1.png","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/error-context.md","e2e/test-results/form-interactions-core-bus-cf0d9--to-Cash-F06-订单表单---动态明细行验证-chromium/test-failed-1.png","e2e/tests/form-interactions/hr-forms.spec.ts","e2e/tests/form-interactions/large-data-performance.spec.ts","e2e/tests/form-interactions/service-center-forms.spec.ts","e2e/tests/form-interactions/supply-chain-forms.spec.ts","frontend/src/views/cpq/components/PoliciesTab.vue","frontend/src/views/marketing-calendar/components/CalendarAgendaView.vue","frontend/src/views/marketing-calendar/components/CalendarMonthView.vue","frontend/src/views/marketing-calendar/components/CalendarWeekView.vue","frontend/src/views/marketing-calendar/components/EventDetailDrawer.vue","frontend/src/views/marketing-calendar/components/EventFormDialog.vue","frontend/src/views/marketing-calendar/composables/useMarketingCalendar.ts","frontend/src/views/marketing-north-star/components/NorthStarAlerts.vue","frontend/src/views/marketing-north-star/components/NorthStarDashboard.vue","frontend/src/views/marketing-north-star/components/NorthStarMetricForm.vue","frontend/src/views/settings/components/integration/IntegrationAdPlatformsPanel.vue","frontend/src/views/settings/components/integration/IntegrationAiConfig.vue","frontend/src/views/settings/components/integration/IntegrationDingtalkConfig.vue","frontend/src/views/settings/components/integration/IntegrationEmailConfig.vue","frontend/src/views/settings/components/integration/IntegrationFeishuConfig.vue","frontend/src/views/settings/components/integration/IntegrationGroupbuyPanel.vue","frontend/src/views/settings/components/integration/IntegrationSmsConfig.vue","frontend/src/views/settings/components/integration/IntegrationWebhookConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatPublicConfig.vue","frontend/src/views/settings/components/integration/IntegrationWechatWorkConfig.vue","scripts/migrate-to-uselistpage.ts"],"removed":["e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/error-context.md","e2e/test-results/auth.setup.ts-authenticate-as-admin-setup/test-failed-1.png"],"modified":[".github/workflows/e2e-tests.yml","backend/.env.test","backend/prisma/schema/marketing.prisma","backend/prisma/schema/stores.prisma","backend/src/modules/ad-placement/placement.contract.routes.ts","backend/src/modules/ad-placement/placement.controller.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/channels/channel.contract.routes.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.routes.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.contract.routes.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/expense/expense.routes.ts","backend/src/modules/faults/fault.contract.routes.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/geo-keywords/geo-keyword.contract.routes.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.routes.ts","backend/src/modules/geo-keywords/geo-keyword.schema.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.contract.routes.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.routes.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.contract.routes.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.controller.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.routes.ts","backend/src/modules/marketing-matrix/matrix.contract.routes.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/process/process.routes.ts","backend/src/modules/process/process.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.controller.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue.contract.routes.ts","backend/src/modules/revenue/revenue.controller.ts","backend/src/modules/revenue/revenue.routes.ts","backend/src/modules/search/search.controller.ts","backend/src/modules/search/search.routes.ts","backend/src/modules/search/search.schema.ts","backend/src/modules/search/search.service.ts","backend/src/modules/social-analytics/social-analytics.service.ts","backend/src/modules/stores/store.contract.routes.ts","backend/src/modules/stores/store.controller.ts","backend/src/modules/stores/store.routes.ts","backend/src/modules/stores/store.schema.ts","backend/src/modules/treasury/treasury.contract.routes.ts","backend/src/modules/treasury/treasury.controller.ts","backend/src/modules/treasury/treasury.routes.ts","e2e/.auth/admin.json","e2e/helpers/form-test-helpers.ts","e2e/package.json","e2e/test-results/.last-run.json","e2e/tests/form-interactions/approval-workflow-forms.spec.ts","e2e/tests/form-interactions/core-business-forms.spec.ts","e2e/tests/form-interactions/finance-forms.spec.ts","e2e/tests/form-interactions/marketing-campaign-forms.spec.ts","frontend/src/api/modules/im-channels.ts","frontend/src/composables/useDashboardRealtime.ts","frontend/src/views/ad-accounts/Index.vue","frontend/src/views/ad-audiences/Index.vue","frontend/src/views/ad-biddings/Index.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Index.vue","frontend/src/views/ad-reports/Index.vue","frontend/src/views/alliance-analytics/Index.vue","frontend/src/views/alliance-merchants/Index.vue","frontend/src/views/alliance-products/Index.vue","frontend/src/views/alliance-promotions/Index.vue","frontend/src/views/alliance-referrals/Index.vue","frontend/src/views/alliance-settlements/Index.vue","frontend/src/views/ap-ledger/Index.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/approval-templates/Index.vue","frontend/src/views/bom/Index.vue","frontend/src/views/campaign-drafts/Index.vue","frontend/src/views/campaign-use-case-templates/Index.vue","frontend/src/views/channel-integrations/Index.vue","frontend/src/views/cohort-analysis/Index.vue","frontend/src/views/community-activities/Index.vue","frontend/src/views/community-analytics/Index.vue","frontend/src/views/community-groups/Index.vue","frontend/src/views/community-levels/Index.vue","frontend/src/views/community-members/Index.vue","frontend/src/views/community-messages/Index.vue","frontend/src/views/community-points/Index.vue","frontend/src/views/consumer-behavior-analytics/Index.vue","frontend/src/views/content-categories/Index.vue","frontend/src/views/content-copyright/Index.vue","frontend/src/views/content-creation/Index.vue","frontend/src/views/content-distribution/Index.vue","frontend/src/views/content-library/Index.vue","frontend/src/views/content-review/Index.vue","frontend/src/views/content-templates/Index.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cpq/composables/useCpqCommon.ts","frontend/src/views/crm-activities/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-journey/Index.vue","frontend/src/views/customer-ltv/Index.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-segmentation/Index.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Index.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/email-marketing/Index.vue","frontend/src/views/email-templates/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/faults/Index.vue","frontend/src/views/finance-os/ai/AutoCreditAdjustment.vue","frontend/src/views/finance-os/ai/CashForecastModel.vue","frontend/src/views/finance-os/ai/DefaultProbabilityModel.vue","frontend/src/views/finance-os/ai/ROIEvaluation.vue","frontend/src/views/geo-fences/Index.vue","frontend/src/views/geo-keywords/Detail.vue","frontend/src/views/geo-keywords/Index.vue","frontend/src/views/groupbuy-analytics/Index.vue","frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-orders/Index.vue","frontend/src/views/groupbuy-participants/Detail.vue","frontend/src/views/groupbuy-participants/Form.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue","frontend/src/views/im-channels/Index.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/journey-orchestration/Index.vue","frontend/src/views/knowledge-candidates/Index.vue","frontend/src/views/knowledge-capture/Index.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/landing-pages/Index.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-pool/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/livestream-analytics/Index.vue","frontend/src/views/livestream-interactions/Index.vue","frontend/src/views/livestream-products/Index.vue","frontend/src/views/livestream-rooms/Index.vue","frontend/src/views/livestream-schedules/Index.vue","frontend/src/views/livestream-scripts/Index.vue","frontend/src/views/livestream/Index.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/location-assessments/Index.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-calendar/Index.vue","frontend/src/views/marketing-content/Index.vue","frontend/src/views/marketing-effectiveness/Index.vue","frontend/src/views/marketing-forms/Index.vue","frontend/src/views/marketing-matrix/Index.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-tools/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Index.vue","frontend/src/views/positions/Index.vue","frontend/src/views/predictive-analytics/Index.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/projects/Index.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/realtime-trigger/Index.vue","frontend/src/views/redemptions/Index.vue","frontend/src/views/rfm-analysis/Index.vue","frontend/src/views/roles/Index.vue","frontend/src/views/satisfaction/Index.vue","frontend/src/views/settings/IntegrationServices.vue","frontend/src/views/social-accounts/Index.vue","frontend/src/views/social-auto-replies/Index.vue","frontend/src/views/social-competitors/Index.vue","frontend/src/views/social-followers/Index.vue","frontend/src/views/social-hot-topics/Index.vue","frontend/src/views/social-interactions/Index.vue","frontend/src/views/social-posts/Index.vue","frontend/src/views/spare-parts/Index.vue","frontend/src/views/store-inventory/Index.vue","frontend/src/views/store-settlements/Index.vue","frontend/src/views/store-staff/Index.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-center/Index.vue","frontend/src/views/supplier-payments/Index.vue","frontend/src/views/system-events/Index.vue","frontend/src/views/ticket-workflows/Index.vue","frontend/src/views/users/Index.vue","frontend/src/views/video-calls/Index.vue","frontend/src/views/video-content/Index.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/outbox-atomicity-audit.latest.json"]},"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":5212729,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-13T00:24: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":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
|
68
|
1776066496
|
1776066558
|
0
|
1776066085
|
1776067928
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
14173
|
fix(database): improve migration system with dedup fix(database): improve migration system with dedup, rollback strategy, and CI/CD...
|
6
|
5
|
test-pipeline.yml
|
14095
|
5
|
0
|
refs/heads/main
|
7c66dac1fd83d4b9dc05198d7589827309ba5922
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d2c68b13960de626f7a8d496bf1977d263eb7931","after":"7c66dac1fd83d4b9dc05198d7589827309ba5922","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/d2c68b13960de626f7a8d496bf1977d263eb7931...7c66dac1fd83d4b9dc05198d7589827309ba5922","commits":[{"id":"7c66dac1fd83d4b9dc05198d7589827309ba5922","message":"fix(database): improve migration system with dedup, rollback strategy, and CI/CD\n\n- Fix 6 duplicate migration timestamps by adding _a/_b suffixes for deterministic ordering\n- Remove nested backend/backend/ directory anomaly (accidental copy)\n- Deprecate process-designer.prisma (models already merged in main schema)\n- Deprecate machine-specific create-extension.sh, point to portable alternatives\n- Create database-migration-guide-v2.md as single source of truth\n- Add rollback strategy generator for recent migrations (cross-platform)\n- Add CI/CD migration safety checks (7-point validation)\n- Add GitHub Actions workflow for automatic migration validation\n- Add legacy migration cleanup script to standardize on Prisma\n- Archive old migration guide with deprecation notice\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7c66dac1fd83d4b9dc05198d7589827309ba5922","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-14T20:18:15+08:00","added":[".github/workflows/migration-safety.yml","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","backend/prisma/process-designer.prisma","create-extension.sh","docs/guides/database-migration-guide.md"]}],"total_commits":0,"head_commit":{"id":"7c66dac1fd83d4b9dc05198d7589827309ba5922","message":"fix(database): improve migration system with dedup, rollback strategy, and CI/CD\n\n- Fix 6 duplicate migration timestamps by adding _a/_b suffixes for deterministic ordering\n- Remove nested backend/backend/ directory anomaly (accidental copy)\n- Deprecate process-designer.prisma (models already merged in main schema)\n- Deprecate machine-specific create-extension.sh, point to portable alternatives\n- Create database-migration-guide-v2.md as single source of truth\n- Add rollback strategy generator for recent migrations (cross-platform)\n- Add CI/CD migration safety checks (7-point validation)\n- Add GitHub Actions workflow for automatic migration validation\n- Add legacy migration cleanup script to standardize on Prisma\n- Archive old migration guide with deprecation notice\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7c66dac1fd83d4b9dc05198d7589827309ba5922","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-14T20:18:15+08:00","added":[".github/workflows/migration-safety.yml","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","backend/prisma/process-designer.prisma","create-extension.sh","docs/guides/database-migration-guide.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5215537,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-13T15:41: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":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
|
3
|
24
|
0
|
1776170077
|
0
|
1776170070
|
1776170081
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
14177
|
chore: add backend .env configuration
|
6
|
5
|
test-pipeline.yml
|
14098
|
5
|
0
|
refs/heads/main
|
204e3356f50776130b4976cf96f4deedfe36ab5f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7c66dac1fd83d4b9dc05198d7589827309ba5922","after":"204e3356f50776130b4976cf96f4deedfe36ab5f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7c66dac1fd83d4b9dc05198d7589827309ba5922...204e3356f50776130b4976cf96f4deedfe36ab5f","commits":[{"id":"204e3356f50776130b4976cf96f4deedfe36ab5f","message":"chore: add backend .env configuration\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/204e3356f50776130b4976cf96f4deedfe36ab5f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-14T20:34:24+08:00","added":["backend/.env"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"204e3356f50776130b4976cf96f4deedfe36ab5f","message":"chore: add backend .env configuration\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/204e3356f50776130b4976cf96f4deedfe36ab5f","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-14T20:34:24+08:00","added":["backend/.env"],"removed":[],"modified":[]},"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":5215579,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-14T20:34: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":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
|
3
|
24
|
0
|
1776170152
|
0
|
1776170082
|
1776170156
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
14182
|
Update governance docs and refresh harness baselin Update governance docs and refresh harness baseline guidance...
|
6
|
5
|
test-pipeline.yml
|
14103
|
5
|
0
|
refs/heads/main
|
551c4d2e9b42cd14481ec48c3b2e2526cab4d58c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"204e3356f50776130b4976cf96f4deedfe36ab5f","after":"551c4d2e9b42cd14481ec48c3b2e2526cab4d58c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/204e3356f50776130b4976cf96f4deedfe36ab5f...551c4d2e9b42cd14481ec48c3b2e2526cab4d58c","commits":[{"id":"551c4d2e9b42cd14481ec48c3b2e2526cab4d58c","message":"Update governance docs and refresh harness baseline guidance\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/551c4d2e9b42cd14481ec48c3b2e2526cab4d58c","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-14T20:35:36+08:00","added":[".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md"],"removed":[],"modified":["backend/Dockerfile","backend/Dockerfile.local","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","docker-compose.local-prod.yml","docker-compose.prod.yml","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"551c4d2e9b42cd14481ec48c3b2e2526cab4d58c","message":"Update governance docs and refresh harness baseline guidance\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/551c4d2e9b42cd14481ec48c3b2e2526cab4d58c","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-14T20:35:36+08:00","added":[".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md"],"removed":[],"modified":["backend/Dockerfile","backend/Dockerfile.local","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","docker-compose.local-prod.yml","docker-compose.prod.yml","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5215584,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-14T20:34:43+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
68
|
1776173303
|
1776173356
|
0
|
1776170159
|
1776173494
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
14344
|
Implement Hermes-style harness context and fix all Implement Hermes-style harness context and fix alliance API tests...
|
6
|
5
|
test-pipeline.yml
|
14266
|
5
|
0
|
refs/heads/main
|
110abcc02b429bfac3ebe16a02a876c0ba2f4f62
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"551c4d2e9b42cd14481ec48c3b2e2526cab4d58c","after":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/551c4d2e9b42cd14481ec48c3b2e2526cab4d58c...110abcc02b429bfac3ebe16a02a876c0ba2f4f62","commits":[{"id":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","message":"Implement Hermes-style harness context and fix alliance API tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/110abcc02b429bfac3ebe16a02a876c0ba2f4f62","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T09:04:03+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/config/kafka.ts","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"e8baa3afde7621a8179f33a82639b86936d2242a","message":"Improve Harness prompt assembly and context compression\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e8baa3afde7621a8179f33a82639b86936d2242a","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T08:23:29+08:00","added":["QWEN.md","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/config/kafka.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/community-members/community-member.controller.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","message":"Implement Hermes-style harness context and fix alliance API tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/110abcc02b429bfac3ebe16a02a876c0ba2f4f62","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T09:04:03+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/config/kafka.ts","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"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":5215827,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-14T20:36:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
68
|
1776215497
|
1776215541
|
0
|
1776215058
|
1776215625
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
14426
|
Tighten outbox atomicity and refresh readiness aud Tighten outbox atomicity and refresh readiness audits...
|
6
|
5
|
test-pipeline.yml
|
14348
|
5
|
0
|
refs/heads/main
|
fd1878b707f31b05ee314173ac91491adb28bc30
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","after":"fd1878b707f31b05ee314173ac91491adb28bc30","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/110abcc02b429bfac3ebe16a02a876c0ba2f4f62...fd1878b707f31b05ee314173ac91491adb28bc30","commits":[{"id":"fd1878b707f31b05ee314173ac91491adb28bc30","message":"Tighten outbox atomicity and refresh readiness audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fd1878b707f31b05ee314173ac91491adb28bc30","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T15:00:11+08:00","added":["docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md"],"removed":[],"modified":["backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]}],"total_commits":0,"head_commit":{"id":"fd1878b707f31b05ee314173ac91491adb28bc30","message":"Tighten outbox atomicity and refresh readiness audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fd1878b707f31b05ee314173ac91491adb28bc30","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T15:00:11+08:00","added":["docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md"],"removed":[],"modified":["backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/treasury/treasury-crud.service.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"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":5216674,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-15T09:04:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
68
|
1776236932
|
1776236986
|
0
|
1776236459
|
1776237059
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
14938
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
test-pipeline.yml
|
14860
|
5
|
0
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"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":5217003,"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":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-15T15:01:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
68
|
1776388596
|
1776388658
|
0
|
1776387184
|
1776388772
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
17728
|
Make local one-command startup work end-to-end
|
6
|
5
|
test-pipeline.yml
|
17649
|
5
|
0
|
refs/heads/main
|
597fbdc49bc67e7803e9ff0ab9c77dccc99d778e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7b47df3186db279cfc071517a6c034aa213d926d","after":"597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7b47df3186db279cfc071517a6c034aa213d926d...597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","commits":[{"id":"597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","message":"Make local one-command startup work end-to-end\n\nFix the gaps that prevented `make dev` / `docker compose up` from working\non a fresh checkout:\n\n- Replace `\u003cCHANGE_ME_*\u003e` placeholders in .env.example with dev defaults\n so Postgres / Redis / MinIO containers no longer initialize with the\n literal placeholder string as their password. Production override\n warning preserved at the top of the file.\n- Add normalize_placeholder() in sync-local-env.sh as a legacy-safety\n net for existing .env files still carrying the old placeholders.\n- Add PGBOUNCER_PORT to .env.example so it shows up alongside other\n configurable ports (the docker-compose default still works).\n- Remove the truncated complete_migration_seed.sql.gz (20 bytes,\n unreachable from any script or doc).\n- Add a \"🚀 快速开始\" section to README.md with prerequisites, the\n three-way startup comparison (make dev / full Docker / base-only),\n default credentials, and troubleshooting entry points — the README\n previously had no quickstart at all.\n- Unify `docker-compose \u003cverb\u003e` → `docker compose \u003cverb\u003e` (33 places\n in DEPLOYMENT.md) and replace `cd backend \u0026\u0026 npx prisma ...` /\n `npm ci` with `pnpm -C backend exec prisma ...` / `pnpm install`\n in DEPLOYMENT.md and DEPLOY_DB.md.\n- Annotate `make db-migrate / mock-seed / seed` as `[legacy]` in the\n Makefile help text and point users to the canonical\n `pnpm -C backend exec prisma migrate deploy` /\n `pnpm -C backend run db:seed` entrypoints.\n\nEnd-to-end verification:\n cp .env.example .env\n docker compose -f docker-compose.yml config --quiet # exits 0\n bash scripts/sync-local-env.sh # backend/.env\n uses identical\n dev passwords\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:41:01-07:00","added":[],"removed":["complete_migration_seed.sql.gz"],"modified":[".env.example","DEPLOYMENT.md","DEPLOY_DB.md","Makefile","README.md","scripts/start-all.sh","scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","message":"Make local one-command startup work end-to-end\n\nFix the gaps that prevented `make dev` / `docker compose up` from working\non a fresh checkout:\n\n- Replace `\u003cCHANGE_ME_*\u003e` placeholders in .env.example with dev defaults\n so Postgres / Redis / MinIO containers no longer initialize with the\n literal placeholder string as their password. Production override\n warning preserved at the top of the file.\n- Add normalize_placeholder() in sync-local-env.sh as a legacy-safety\n net for existing .env files still carrying the old placeholders.\n- Add PGBOUNCER_PORT to .env.example so it shows up alongside other\n configurable ports (the docker-compose default still works).\n- Remove the truncated complete_migration_seed.sql.gz (20 bytes,\n unreachable from any script or doc).\n- Add a \"🚀 快速开始\" section to README.md with prerequisites, the\n three-way startup comparison (make dev / full Docker / base-only),\n default credentials, and troubleshooting entry points — the README\n previously had no quickstart at all.\n- Unify `docker-compose \u003cverb\u003e` → `docker compose \u003cverb\u003e` (33 places\n in DEPLOYMENT.md) and replace `cd backend \u0026\u0026 npx prisma ...` /\n `npm ci` with `pnpm -C backend exec prisma ...` / `pnpm install`\n in DEPLOYMENT.md and DEPLOY_DB.md.\n- Annotate `make db-migrate / mock-seed / seed` as `[legacy]` in the\n Makefile help text and point users to the canonical\n `pnpm -C backend exec prisma migrate deploy` /\n `pnpm -C backend run db:seed` entrypoints.\n\nEnd-to-end verification:\n cp .env.example .env\n docker compose -f docker-compose.yml config --quiet # exits 0\n bash scripts/sync-local-env.sh # backend/.env\n uses identical\n dev passwords\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:41:01-07:00","added":[],"removed":["complete_migration_seed.sql.gz"],"modified":[".env.example","DEPLOYMENT.md","DEPLOY_DB.md","Makefile","README.md","scripts/start-all.sh","scripts/sync-local-env.sh"]},"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":5218001,"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":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-24T23:28: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":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
|
3
|
24
|
0
|
1777218740
|
0
|
1777218322
|
1777218744
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
17733
|
Stop tracking backend/.env (leaked secrets remedia Stop tracking backend/.env (leaked secrets remediation, step 1)...
|
6
|
5
|
test-pipeline.yml
|
17653
|
5
|
0
|
refs/heads/main
|
f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","after":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/597fbdc49bc67e7803e9ff0ab9c77dccc99d778e...f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","commits":[{"id":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","message":"Stop tracking backend/.env (leaked secrets remediation, step 1)\n\nbackend/.env was committed once at 204e3356f with what appear to be\nreal base64-encoded random secrets (DB password, Redis password, JWT\nsecret, MinIO secret key — pattern matches `openssl rand -base64 32`\noutput). The file header indicates it was auto-generated locally by\nscripts/sync-local-env.sh and committed by mistake.\n\nThis commit only stops tracking the file going forward. The leaked\ncontent is still reachable in git history at commit 204e3356f from\nmain and from ~10+ origin feature branches; treat the secrets as\ncompromised and rotate them in any deployment that may have used them.\n\nRoot .gitignore already has a `.env` rule that takes effect once the\nfile is no longer tracked, so no .gitignore change is needed.\n\nTo regenerate backend/.env locally with the new dev defaults:\n bash scripts/sync-local-env.sh --force\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:52:06-07:00","added":[],"removed":["backend/.env"],"modified":[]}],"total_commits":0,"head_commit":{"id":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","message":"Stop tracking backend/.env (leaked secrets remediation, step 1)\n\nbackend/.env was committed once at 204e3356f with what appear to be\nreal base64-encoded random secrets (DB password, Redis password, JWT\nsecret, MinIO secret key — pattern matches `openssl rand -base64 32`\noutput). The file header indicates it was auto-generated locally by\nscripts/sync-local-env.sh and committed by mistake.\n\nThis commit only stops tracking the file going forward. The leaked\ncontent is still reachable in git history at commit 204e3356f from\nmain and from ~10+ origin feature branches; treat the secrets as\ncompromised and rotate them in any deployment that may have used them.\n\nRoot .gitignore already has a `.env` rule that takes effect once the\nfile is no longer tracked, so no .gitignore change is needed.\n\nTo regenerate backend/.env locally with the new dev defaults:\n bash scripts/sync-local-env.sh --force\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:52:06-07:00","added":[],"removed":["backend/.env"],"modified":[]},"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":5218081,"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":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-26T23:45: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":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
|
3
|
24
|
0
|
1777219009
|
0
|
1777218745
|
1777219014
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
17738
|
Add env-leak pre-commit guard and secrets-leak inc Add env-leak pre-commit guard and secrets-leak incident doc...
|
6
|
5
|
test-pipeline.yml
|
17658
|
5
|
0
|
refs/heads/main
|
bd8162cf2c08d175a1cab0f69d42b648bb825c10
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","after":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97...bd8162cf2c08d175a1cab0f69d42b648bb825c10","commits":[{"id":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","message":"Add env-leak pre-commit guard and secrets-leak incident doc\n\n- .husky/pre-commit: insert a serial first-position check that blocks\n any staged file ending in `.env` or `.env.local` from entering the\n index. Templates (`.env.example`, `.env.test`, `frontend/.env.development`,\n etc.) are not matched. Background and the previous incident are\n documented in docs/security/leaked-env-2026-04-26.md.\n\n- docs/security/leaked-env-2026-04-26.md: full incident record covering\n what leaked, what was done in 597fbdc49 and f8c99c0bc, what each team\n member needs to do locally, the rotation checklist for the four leaked\n secrets, and the conditions under which a history rewrite would be\n warranted (currently not).\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd8162cf2c08d175a1cab0f69d42b648bb825c10","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:56:37-07:00","added":["docs/security/leaked-env-2026-04-26.md"],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","message":"Add env-leak pre-commit guard and secrets-leak incident doc\n\n- .husky/pre-commit: insert a serial first-position check that blocks\n any staged file ending in `.env` or `.env.local` from entering the\n index. Templates (`.env.example`, `.env.test`, `frontend/.env.development`,\n etc.) are not matched. Background and the previous incident are\n documented in docs/security/leaked-env-2026-04-26.md.\n\n- docs/security/leaked-env-2026-04-26.md: full incident record covering\n what leaked, what was done in 597fbdc49 and f8c99c0bc, what each team\n member needs to do locally, the rotation checklist for the four leaked\n secrets, and the conditions under which a history rewrite would be\n warranted (currently not).\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd8162cf2c08d175a1cab0f69d42b648bb825c10","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:56:37-07:00","added":["docs/security/leaked-env-2026-04-26.md"],"removed":[],"modified":[".husky/pre-commit"]},"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":5218086,"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":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-26T23:52: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":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
|
3
|
24
|
0
|
1777219587
|
0
|
1777219018
|
1777219591
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
17744
|
Add secret-content-scan to Fast Gate pre-commit
|
6
|
5
|
test-pipeline.yml
|
17664
|
5
|
0
|
refs/heads/main
|
6f30ee7954e6142227f44fbcb36106e5ce6018eb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","after":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/bd8162cf2c08d175a1cab0f69d42b648bb825c10...6f30ee7954e6142227f44fbcb36106e5ce6018eb","commits":[{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]},"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":5218097,"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":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-26T23:56: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":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
|
3
|
24
|
0
|
1777219992
|
0
|
1777219595
|
1777219997
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
17749
|
Unblock docker-compose.prod.yml validation by remo Unblock docker-compose.prod.yml validation by removing replicas:2...
|
6
|
5
|
test-pipeline.yml
|
17669
|
5
|
0
|
refs/heads/main
|
c04c1f61a7ca64acf31ed914678656d87ed6e35f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","after":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/6f30ee7954e6142227f44fbcb36106e5ce6018eb...c04c1f61a7ca64acf31ed914678656d87ed6e35f","commits":[{"id":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","message":"Unblock docker-compose.prod.yml validation by removing replicas:2\n\n`docker compose -f docker-compose.prod.yml config` was failing with:\n\n services.deploy.replicas: can't set container_name and api as\n container name must be unique: invalid compose project\n\nThe api service had both `container_name: juhi-api` (relied on by\nscripts/deploy.sh:294 and scripts/post-deploy-verify.sh:39) and\n`deploy.replicas: 2`. Compose v2 rejects this combination because\nit can't give two replicas the same fixed name.\n\n`deploy.replicas` is also silently ignored in non-Swarm Compose mode,\nso this directive was aspirational rather than effective. The actual\nmulti-replica path in this repo is docker-compose.ha.yml.\n\nRemoved the `replicas: 2` line and added a comment explaining the\ntrade-off; kept resources/update_config/rollback_config for Swarm/K8s\ntranslation.\n\nVerified: `docker compose --env-file \u003cstub\u003e -f docker-compose.prod.yml\nconfig` now exits 0 with no warnings.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c04c1f61a7ca64acf31ed914678656d87ed6e35f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:13:05-07:00","added":[],"removed":[],"modified":["docker-compose.prod.yml"]}],"total_commits":0,"head_commit":{"id":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","message":"Unblock docker-compose.prod.yml validation by removing replicas:2\n\n`docker compose -f docker-compose.prod.yml config` was failing with:\n\n services.deploy.replicas: can't set container_name and api as\n container name must be unique: invalid compose project\n\nThe api service had both `container_name: juhi-api` (relied on by\nscripts/deploy.sh:294 and scripts/post-deploy-verify.sh:39) and\n`deploy.replicas: 2`. Compose v2 rejects this combination because\nit can't give two replicas the same fixed name.\n\n`deploy.replicas` is also silently ignored in non-Swarm Compose mode,\nso this directive was aspirational rather than effective. The actual\nmulti-replica path in this repo is docker-compose.ha.yml.\n\nRemoved the `replicas: 2` line and added a comment explaining the\ntrade-off; kept resources/update_config/rollback_config for Swarm/K8s\ntranslation.\n\nVerified: `docker compose --env-file \u003cstub\u003e -f docker-compose.prod.yml\nconfig` now exits 0 with no warnings.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c04c1f61a7ca64acf31ed914678656d87ed6e35f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:13:05-07:00","added":[],"removed":[],"modified":["docker-compose.prod.yml"]},"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":5218106,"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":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:06: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":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
|
3
|
24
|
0
|
1777220521
|
0
|
1777220000
|
1777220526
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
17755
|
Tighten CI workflows: Node 20, pnpm 9, lint enforc Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps...
|
6
|
5
|
test-pipeline.yml
|
17675
|
5
|
0
|
refs/heads/main
|
a67a4f5bf6bede6341ed368fb3af3caec8dcd71c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","after":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c04c1f61a7ca64acf31ed914678656d87ed6e35f...a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","commits":[{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]}],"total_commits":0,"head_commit":{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]},"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":5218117,"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":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:13: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":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
|
3
|
25
|
0
|
1777221956
|
0
|
1777220530
|
1777221961
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|