mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-11 20:38:58 +08:00
- 修复 ReadYamlAsync 在取消时错误包装异常的问题,并对齐 IntegerTryParseDelegate 的可空性签名 - 更新 Ioc 与 Query 测试辅助类型的 XML 文档,并让 IPrioritizedService 复用 IMixedService 的 Name 契约 - 补充 YamlConfigLoader 取消语义回归测试并同步 analyzer warning reduction 跟踪
6.8 KiB
6.8 KiB
Analyzer Warning Reduction 追踪
2026-04-27 — RP-084
阶段:收敛 PR #297 的 CodeRabbit follow-up
- 触发背景:
- 用户执行
$gframework-pr-review,要求以当前分支对应 PR 为准,提取并核对 AI review / check 信号 fetch_current_pr_review.py返回 PR#297的最新 head review 中仍有3个 open threads,另有2个 folded nitpick 仍然适用
- 用户执行
- 主线程实施:
- 校验
GFramework.Game/Config/YamlConfigLoader.cs后,保留ReadYamlAsync的原始取消语义,并把IntegerTryParseDelegate<T>第一个参数改为string? - 校验
GFramework.Core.Tests/Ioc/*与Query/TestAsyncQueryWithExceptionV4.cs后,补齐缺失 XML 文档,让IPrioritizedService继承IMixedService复用Name契约,并补上<returns>文档 - 新增
YamlConfigLoaderTests.ReadYamlAsync_Should_Preserve_OperationCanceledException_When_Cancellation_Is_Requested,用反射直接命中私有读取路径,稳定回归本次取消语义修复 - 用
dotnet format --verify-no-changes --include ...清理并验证本次改动文件的格式状态
- 校验
- 验证里程碑:
dotnet test GFramework.Game.Tests/GFramework.Game.Tests.csproj -c Release --filter "FullyQualifiedName~YamlConfigLoaderTests.ReadYamlAsync_Should_Preserve_OperationCanceledException_When_Cancellation_Is_Requested"- 结果:成功;
1通过、0失败
- 结果:成功;
dotnet test GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release --filter "FullyQualifiedName~MicrosoftDiContainerTests.GetAllByPriority_Should_Sort_By_Priority_Ascending"- 结果:成功;
1通过、0失败
- 结果:成功;
dotnet build GFramework.Game/GFramework.Game.csproj -c Release- 结果:成功;
0 Warning(s)、0 Error(s)
- 结果:成功;
dotnet build GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release- 结果:成功;
0 Warning(s)、0 Error(s)
- 结果:成功;
dotnet format GFramework.sln --verify-no-changes --include GFramework.Game/Config/YamlConfigLoader.cs GFramework.Game.Tests/Config/YamlConfigLoaderTests.cs GFramework.Core.Tests/Ioc/IMixedService.cs GFramework.Core.Tests/Ioc/IPrioritizedService.cs GFramework.Core.Tests/Ioc/PrioritizedService.cs GFramework.Core.Tests/Query/TestAsyncQueryWithExceptionV4.cs- 结果:成功
- 当前结论:
- PR
#297当前仍然有效的 CodeRabbit open threads 与 folded nitpick 已在本地全部核对并收敛 - 当前恢复点完成后,分支可以回到
ArchitectureContextTests.cs/AsyncQueryExecutorTests.cs/YamlConfigSchemaValidator*的 warning reduction 主线
- PR
- 下一步:
- 提交本轮 PR review follow-up。
- 继续执行下一波
MA0048小切片,优先避免一次性进入Mediator*的高 changed-file 风险波次。
2026-04-27 — RP-083
阶段:修复 YamlConfigLoader 单文件 warning,并拆分 MicrosoftDiContainerTests 的辅助类型
- 触发背景:
- 用户执行
$gframework-batch-boot 50,要求先拿仓库根构建 warning,再按 bounded slice 分派给不同 subagent 并持续推进 - 当前分支在本轮开始时与
origin/main@b6a9fef零提交差异,适合从低风险 warning slice 起步
- 用户执行
- 主线程实施:
- 先执行 non-incremental 仓库根基线:
dotnet clean+dotnet build,得到397 Warning(s)/316个唯一位点 - 主线程修复
GFramework.Game/Config/YamlConfigLoader.cs的MA0051、MA0002与MA0158 - 接受一个 worker batch:将
GFramework.Core.Tests/Ioc/MicrosoftDiContainerTests.cs末尾的10个测试辅助接口/类拆分到Ioc/同目录独立文件 - 接受第二波 worker 的已落地结果:将
GFramework.Core.Tests/Query/AbstractAsyncQueryTests.cs末尾的7个测试辅助类型拆分到Query/同目录独立文件 - 启动
ArchitectureContextTests.cs候选 worker,但在共享工作树落地前主动停止,以避免本轮上下文与 review 面积继续膨胀
- 先执行 non-incremental 仓库根基线:
- 验证里程碑:
dotnet build GFramework.Game/GFramework.Game.csproj -c Release- 结果:成功;
111 Warning(s)、0 Error(s) - 观察:构建输出未再报告
GFramework.Game/Config/YamlConfigLoader.cs
- 结果:成功;
dotnet build GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release- 结果:成功;
0 Warning(s)、0 Error(s)
- 结果:成功;
dotnet clean- 结果:成功;刷新最终 non-incremental 仓库根 warning 基线
dotnet build- 结果:成功;
353 Warning(s)、0 Error(s),唯一位点279 - 观察:构建输出未再报告
GFramework.Game/Config/YamlConfigLoader.cs、GFramework.Core.Tests/Ioc/MicrosoftDiContainerTests.cs与GFramework.Core.Tests/Query/AbstractAsyncQueryTests.cs
- 结果:成功;
- 当前结论:
- 本轮已完成一个主线程单文件 slice 和两个 worker 拆分 slice;仓库根 non-incremental warning 从
397降到353 - 当前共享工作树 footprint 为
22个 changed files,仍低于$gframework-batch-boot 50的停止线 - 下一波更适合继续处理
7个MA0048的小文件,而不是立即进入Mediator*或YamlConfigSchemaValidator*的高耦合热点
- 本轮已完成一个主线程单文件 slice 和两个 worker 拆分 slice;仓库根 non-incremental warning 从
活跃风险
GFramework.Cqrs.Tests/Mediator/*的MA0048位点密度很高,一次性拆分会迅速推高 changed-file 数。- 缓解措施:下一波优先继续拿
7warning 级别的小切片。
- 缓解措施:下一波优先继续拿
YamlConfigSchemaValidator*仍然聚集多类高耦合 warning。- 缓解措施:继续维持为独立波次,不与测试项目拆分混提。
下一步
- 完成本轮
YamlConfigLoader.cs、MicrosoftDiContainerTests.cs与ai-plan的提交。 - 下一波优先从
ArchitectureContextTests.cs或AsyncQueryExecutorTests.cs继续拆分纯MA0048。
历史归档指针
- 最新 trace 归档:
- 历史 todo 归档:
- 早期归档: