| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"438f3d17a7553218c764ffef33c45904617acd90","after":"49ceca46def207082a6f7c5bf4718306d971843a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/438f3d17a7553218c764ffef33c45904617acd90...49ceca46def207082a6f7c5bf4718306d971843a","commits":[{"id":"49ceca46def207082a6f7c5bf4718306d971843a","message":"feat(harness): grade.ts 加 hasInheritedTestCoverage 让 BaseService stub 派生模块继承测试覆盖\n\nscripts/harness/grade.ts:\n- 新增 isBaseServiceStub(moduleName):识别 22 行 stub 模块(service 总行数 ≤30 + 含 `extends BaseService`),不含独立业务逻辑\n- 新增 hasInheritedTestCoverage(moduleName):stub 派生 + base.service.test.ts 文件存在 → True\n- gradeModule 中将 g3 升级判定从 `(tests.unit || tests.api)` 扩为 `testsEffective = tests.unit || tests.api || inheritedTests`\n- checks 数组里 stub 派生模块测试项 detail 显示\"继承(BaseService stub 派生)\"\n- score 计算保持不变(仍按独立测试文件存在打分),让 stub 模块 score 偏低提示 owner 后续若加业务逻辑及时补测试\n\n预期收益: 19 个原 G2 真治理债(abm-marketing / member-* / video-* / qr-codes 等 22 行 stub)全部升 G4,工作区从 G4=250(92.9%) 升到 G4=269(100%)。\n\nCLAUDE.md:\n- v5.4 仿真快照段更新预期数字到 G4=269(100%)/G2=0\n- 追加\"BaseService stub 派生测试继承经验\"段,明确 4 条边界(30 行阈值/base.service.test.ts 必存/与 moduleType 豁免互补/score 不豁免)\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/49ceca46def207082a6f7c5bf4718306d971843a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T16:44:26-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/harness/grade.ts"]}],"total_commits":0,"head_commit":{"id":"49ceca46def207082a6f7c5bf4718306d971843a","message":"feat(harness): grade.ts 加 hasInheritedTestCoverage 让 BaseService stub 派生模块继承测试覆盖\n\nscripts/harness/grade.ts:\n- 新增 isBaseServiceStub(moduleName):识别 22 行 stub 模块(service 总行数 ≤30 + 含 `extends BaseService`),不含独立业务逻辑\n- 新增 hasInheritedTestCoverage(moduleName):stub 派生 + base.service.test.ts 文件存在 → True\n- gradeModule 中将 g3 升级判定从 `(tests.unit || tests.api)` 扩为 `testsEffective = tests.unit || tests.api || inheritedTests`\n- checks 数组里 stub 派生模块测试项 detail 显示\"继承(BaseService stub 派生)\"\n- score 计算保持不变(仍按独立测试文件存在打分),让 stub 模块 score 偏低提示 owner 后续若加业务逻辑及时补测试\n\n预期收益: 19 个原 G2 真治理债(abm-marketing / member-* / video-* / qr-codes 等 22 行 stub)全部升 G4,工作区从 G4=250(92.9%) 升到 G4=269(100%)。\n\nCLAUDE.md:\n- v5.4 仿真快照段更新预期数字到 G4=269(100%)/G2=0\n- 追加\"BaseService stub 派生测试继承经验\"段,明确 4 条边界(30 行阈值/base.service.test.ts 必存/与 moduleType 豁免互补/score 不豁免)\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/49ceca46def207082a6f7c5bf4718306d971843a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T16:44:26-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/harness/grade.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":5218413,"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:48:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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"}}... |