mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-12 22:03:30 +08:00
- 修复 PR review 脚本对 failed-test 额外列表格的解析容错 - 清理 AsyncExtensionsTests 中多余的等待并保留参数名断言 - 补充脚本回归测试并同步 analyzer-warning-reduction 恢复点
6.4 KiB
6.4 KiB
Analyzer Warning Reduction 跟踪
目标
继续以“直接看构建输出、直接修构建 warning”为原则推进当前分支,并保持 active recovery 文档只保留当前真值。
当前恢复点
- 恢复点编号:
ANALYZER-WARNING-REDUCTION-RP-081 - 当前阶段:
Phase 81 - 当前焦点:
2026-04-27已复核 PR#295的 latest-head review,确认ThrowShouldNotRetry的ParamNameopen thread 属于 stale finding,本地代码已经使用传入值而非nameof(parameterName)- 已清理
AsyncExtensionsTests.WithRetry_Should_Respect_ShouldRetry_Predicate中的冗余Task.Delay(50),保留ParamName == nameof(taskFactory)断言锁定契约 - 已增强
.agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py的 failed-test 表格解析,允许Name/Failure Message后出现尾随额外列 - 已新增 Python
unittest回归用例覆盖“尾随额外列不影响前两列提取”的场景 - 当前剩余 warning 热点仍集中在
YamlConfigSchemaValidator*、YamlConfigLoader.cs与大批量MA0048文件名拆分;这些 slice 仍高于本轮 PR review follow-up 的低风险边界
当前活跃事实
- 当前
origin/main基线提交为617e0bf(2026-04-26T12:17:15+08:00)。 - 当前 PR review 真值:
python3 .agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py --json-output <current-pr-review-json>- 最新结果:成功;当前分支对应 PR 为
#295 - 当前测试报告输出已能显示
Summary统计、失败测试名称,以及Name / Failure Message表格中的关键信息 - 当前 GitHub latest-head review 仍显示
1条 open thread,但该线程指向的nameof(parameterName)问题已不在本地代码中成立,属于 stale finding - 当前 latest review 中仍有
2条与本地工作树一致的 nitpick:AsyncExtensionsTests冗余等待,以及 failed-test 表格解析对尾随列不鲁棒
- 最新结果:成功;当前分支对应 PR 为
- 当前直接验证结果:
python3 .agents/skills/gframework-pr-review/scripts/test_fetch_current_pr_review.py- 最新结果:成功;
Ran 1 test in 0.000s,OK
- 最新结果:成功;
python3 .agents/skills/gframework-pr-review/scripts/fetch_current_pr_review.py --section tests --json-output /tmp/current-pr-review-postfix.json- 最新结果:成功;真实 PR 评论抓取仍能输出
2份测试报告,失败用例详情保持可见
- 最新结果:成功;真实 PR 评论抓取仍能输出
dotnet test GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release --filter "FullyQualifiedName~WithRetry_Should_Respect_ShouldRetry_Predicate"- 最新结果:成功;
Failed: 0, Passed: 1, Skipped: 0, Total: 1
- 最新结果:成功;
dotnet test GFramework.Game.Tests/GFramework.Game.Tests.csproj -c Release --filter "FullyQualifiedName~RegisterMigration_During_Cache_Rebuild_Should_Not_Leave_Stale_Type_Cache"- 最新结果:成功;
Failed: 0, Passed: 1, Skipped: 0, Total: 1
- 最新结果:成功;
- 当前分支 stop-condition 指标:
git diff --name-only refs/remotes/origin/main...HEAD | wc -l- 最新结果:
35
- 最新结果:
git diff --numstat refs/remotes/origin/main...HEAD- 最新结果:
642changed lines
- 最新结果:
- 当前批次摘要:
- 三轮低风险 warning 清理已在此前验证中将仓库根 warning 从
639降到397 - 当前批次的已完成 slice 明细已迁移到归档,active todo 仅保留恢复真值
- 本轮新增内容为 PR review nitpick 收口与脚本回归测试补齐,不扩展 warning reduction 的热点清理边界
- 三轮低风险 warning 清理已在此前验证中将仓库根 warning 从
- 当前建议保留到下一波次的候选:
GFramework.Game/Config/YamlConfigLoader.cs的MA0158(单点可修,但文件本身同时承载其他高耦合 warning)- 测试项目中的
MA0048文件名拆分波次(会显著增加 changed-file 数)
当前风险
GFramework.Game/Config/YamlConfigSchemaValidator*.cs仍然聚集多类高耦合 warning。- 缓解措施:本轮先避开该热点,只清理低风险且 ownership 清晰的文件集合。
MA0158迁移涉及net8.0/net9.0/net10.0多目标兼容。- 缓解措施:复用
StoreSelection.cs已存在的#if NET9_0_OR_GREATER专用锁模式,不在net8.0引入不兼容 API。
- 缓解措施:复用
- 当前 PR open thread 与 CI 失败信号仍依赖新提交进入远端 PR head 才能复核。
- 缓解措施:本轮提交并推送后重新执行
$gframework-pr-review,确认 stale open thread 是否被 GitHub 收口,以及两条 nitpick 是否从 latest review 中消失。
- 缓解措施:本轮提交并推送后重新执行
活跃文档
- 当前轮次归档:
- 历史跟踪归档:
- 历史 trace 归档:
验证说明
- 权威验证结果统一维护在“当前活跃事实”。
GFramework.Core.Tests当前仍有既有 analyzer / nullable warning 基线,因此本轮验证只证明 PR review 修复未引入构建错误,未将该项目 warning 清零。- 后续若刷新构建或 PR review 真值,只更新上述权威区块,不在本节重复抄录。
下一步建议
- 提交本轮
AsyncExtensionsTests/$gframework-pr-reviewnitpick 修复、Python 回归测试与ai-plan同步。 - 推送后重新执行
$gframework-pr-review,确认 PR#295的 stale open thread、nitpick 与测试报告是否已刷新为新 head 真值。 - 若后续继续推进 warning reduction,建议另开下一波次处理
YamlConfigLoader.cs热点或测试项目MA0048拆分波次。