docs(analyzer): 同步第三轮警告清理恢复点

- 更新 analyzer-warning-reduction 跟踪文档的第三轮结果与最新 stop-condition 指标

- 记录 Core.Tests 批次验证结果与默认收口建议
This commit is contained in:
gewuyou 2026-04-27 08:15:36 +08:00
parent e19e60ea1a
commit 72ebd266d3
2 changed files with 50 additions and 17 deletions

View File

@ -6,12 +6,12 @@
## 当前恢复点
- 恢复点编号:`ANALYZER-WARNING-REDUCTION-RP-077`
- 当前阶段:`Phase 77`
- 恢复点编号:`ANALYZER-WARNING-REDUCTION-RP-078`
- 当前阶段:`Phase 78`
- 当前焦点:
- `2026-04-27`二轮 `GFramework.Game` 低风险 slice 已完成验证,当前待收口提交 `SettingsModel.cs` / `GameConfigBootstrap.cs` 的专用锁补修与 `ai-plan` 同步
- 当前轮次已重新确认 `origin/main` 基线与 `HEAD` 同为 `617e0bf`,已提交 branch diff 现为 `26 / 50` files、`483` changed lines
- 当前 `GFramework.Game` 的低风险单文件 warning 已基本耗尽;若继续逼近 `$gframework-batch-boot 50`,下一轮更适合切到 `Core.Tests` 等测试项目中的单文件 warning
- `2026-04-27`三轮 `Core.Tests` 低风险 slice 已完成验证,当前建议在 `30 / 50` files 处收口当前波次,而不是继续硬碰高耦合热点
- 当前轮次已重新确认 `origin/main` 基线与 `HEAD` 同为 `617e0bf`,已提交 branch diff 现为 `30 / 50` files、`642` changed lines
- 当前剩余 warning 主要集中在 `YamlConfigSchemaValidator*``YamlConfigLoader.cs` 与大批量 `MA0048` 文件名拆分;这些 slice 已明显高于本轮“低风险、单文件、可并行收口”的目标
## 当前活跃事实
@ -20,32 +20,35 @@
- `dotnet clean`
- 结果:成功;此前沙箱内缺失 Windows fallback package folder 的 clean 失败属于环境噪音,不是仓库真值
- `dotnet build`
- 最新结果:成功;`405 Warning(s)`、`0 Error(s)`
- `dotnet build GFramework.Game/GFramework.Game.csproj -c Release`
- 最新结果:成功;`122 Warning(s)`、`0 Error(s)`
- 最新结果:成功;`397 Warning(s)`、`0 Error(s)`
- `dotnet build GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release`
- 最新结果:成功;`0 Warning(s)`、`0 Error(s)`
- 当前分支 stop-condition 指标:
- `git diff --name-only refs/remotes/origin/main...HEAD | wc -l`
- 最新结果:`26`
- 最新结果:`30`
- `git diff --numstat refs/remotes/origin/main...HEAD`
- 最新结果:`483` changed lines
- 最新结果:`642` changed lines
- 当前批次已完成的 warning slice
- `GFramework.Core` 事件 / 状态 / 属性 / 协程统计中的 `MA0158` 专用锁迁移
- `GFramework.Game/Data``DataRepository``UnifiedSettingsDataRepository``SaveRepository``ConfigureAwait` / 比较器 / 专用锁修正
- `GFramework.Game/Scene/SceneRouterBase.cs``GFramework.Game/UI/UiRouterBase.cs` 中的显式上下文 / 参数名 / 比较器修正
- 当前批次已完成并提交的收口:
- `fb0a55f` `fix(analyzer): 收口首轮并行警告清理`
- 当前批次已接受、待进入实现的下一轮 slice
- 当前批次已完成的第三轮 slice
- `GFramework.Core.Tests/Concurrency/AsyncKeyLockManagerTests.cs``MA0004`
- `GFramework.Core.Tests/Pause/PauseStackManagerTests.cs``MA0158`
- `GFramework.Core.Tests/Extensions/AsyncExtensionsTests.cs``MA0015`
- `GFramework.Core.Tests/Architectures/ArchitectureModulesBehaviorTests.cs``MA0004`
- 当前建议保留到下一波次的候选:
- `GFramework.Game/Config/YamlConfigLoader.cs``MA0158`(单点可修,但文件本身同时承载其他高耦合 warning
- 测试项目中的 `MA0048` 文件名拆分波次(会显著增加 changed-file 数)
- 当前批次验证结果:
- `dotnet clean`
- 最新主线程结果:提权直接执行成功,确认为当前权威 clean 基线
- `dotnet build`
- 最新主线程结果:提权直接构建成功;`405 Warning(s)`、`0 Error(s)`
- `dotnet build GFramework.Game/GFramework.Game.csproj -c Release`
- 最新主线程结果:提权直接构建成功;`122 Warning(s)`、`0 Error(s)`
- 最新主线程结果:提权直接构建成功;`397 Warning(s)`、`0 Error(s)`
- `dotnet build GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release`
- 最新主线程结果:提权直接构建成功;`0 Warning(s)`、`0 Error(s)`
## 当前风险
@ -76,6 +79,6 @@
## 下一步建议
1. 下发 2-3 个 `worker` subagent按文件边界拆分 `SettingsModel.cs``RouterBase.cs`+`UiInteractionProfiles.cs`,并视 `GameConfigBootstrap.cs` 的提取复杂度决定是否并行吸收
2. 若继续逼近 `$gframework-batch-boot 50`,优先把下一轮切到 `Core.Tests` 等测试项目的单文件 warning避免被 `YamlConfigSchemaValidator*` / `YamlConfigLoader.cs` 等热点拖入高耦合重构
3. 若 branch diff 接近阈值,或剩余候选只剩高耦合热点与会明显放大文件数的 `MA0048` 批量拆分,则在新的恢复点收口并等待下一轮
1. 提交第三轮 `Core.Tests` 修复与 `ai-plan` 同步,保持当前恢复点可直接继续
2. 若后续继续推进,建议另开下一波次,优先明确是否接受 `YamlConfigLoader.cs` 热点触碰,或是否要专门做测试项目 `MA0048` 拆分波次
3. 默认在当前恢复点停下,因为继续推进已不再符合本轮“低风险、少文件、可并行收口”的原始边界

View File

@ -1,5 +1,35 @@
# Analyzer Warning Reduction 追踪
## 2026-04-27 — RP-078
### 阶段:完成第三轮 Core.Tests 低风险 slice 并在 30 files 处收口
- 触发背景:
- 第二轮结束后,`GFramework.Game` 低风险单文件 warning 已基本耗尽,继续推进更适合转向测试项目
- 第三轮选择的 `Core.Tests` slice 仍保持单文件、低耦合,且不会明显放大 branch diff
- 已接受的 delegated scope 与结果:
- worker-A`GFramework.Core.Tests/Concurrency/AsyncKeyLockManagerTests.cs`
- 结果:与 `PauseStackManagerTests.cs` 一并落在提交 `650618b`,修复该文件的 `MA0004`
- worker-B`GFramework.Core.Tests/Pause/PauseStackManagerTests.cs`
- 结果:与 `AsyncKeyLockManagerTests.cs` 一并落在提交 `650618b`,修复该文件的 `MA0158`
- worker-C`GFramework.Core.Tests/Extensions/AsyncExtensionsTests.cs``GFramework.Core.Tests/Architectures/ArchitectureModulesBehaviorTests.cs`
- 结果:提交 `e19e60e`,修复 `MA0015` / `MA0004`
- 主线程验证里程碑:
- 提权 `dotnet clean`
- 结果:成功
- 提权 `dotnet build`
- 结果成功warning 从上一轮的 `405` 降到 `397`
- 提权 `dotnet build GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release`
- 结果:成功;`0 Warning(s)``0 Error(s)`
- `git diff --name-only refs/remotes/origin/main...HEAD | wc -l`
- 结果:`30`
- `git diff --numstat refs/remotes/origin/main...HEAD`
- 结果:`642` changed lines
- 当前结论:
- 当前分支在 `30 / 50` files 时仍保持可审阅性,且已经连续三轮拿到了实质 warning 降幅
- 继续推进的剩余候选主要是 `YamlConfig*` 高耦合热点与 `MA0048` 批量拆分,不再符合本轮的低风险边界
- 默认建议在这里收口当前波次,把下一波次留给更明确的热点专项
## 2026-04-27 — RP-077
### 阶段:完成第二轮 Game 侧低风险 slice 验证并转向测试项目候选