Follow-up to #208 and merged #223.
The typed migration dispatch work is complete, but the repository's requirement for 100% branch coverage in core components is still not met. Aggregate coverage above 95% does not satisfy that requirement. Merging #223 did not establish a coverage-policy exception.
The last verified snapshot was aafe5a1714b01cc5e388887119a8276bff728f15, merged by #223:
| Framework |
Covered production branches |
Branch coverage |
| .NET 10 |
654/671 |
97.47% |
| .NET 11 |
904/919 |
98.37% |
MigratorReference.Typed.cs, MigratorInvokerFactory.cs, and JsonMigratableTypes reached 100% on both frameworks. UnionCaseRouting.cs reached 100% on .NET 11. The remaining uncovered branches were:
| Component |
.NET 10 |
.NET 11 |
ExternalMigratorInvoker.cs |
2 |
2 |
JsonMigratableConverter.cs |
1 |
1 |
JsonMigratableConverter.NonObjectMatching.cs |
9 |
9 |
JsonMigrationTypeInfoResolver.cs |
1 |
0 |
MigratorReference.cs |
1 |
1 |
ResolverLeaves.cs |
2 |
1 |
SourceValueShape.cs |
1 |
1 |
These include defensive reader checks, type-name and reflection fallbacks, and guards following earlier validation. Reachability needs to be established before deciding how to cover or simplify them.
Work
- Rebaseline coverage against current
origin/main on .NET 10 and .NET 11, recording the exact commit and per-component branch counts.
- Classify each remaining uncovered core branch: reachable behavior, redundant/unreachable defensive code, or a runtime/configuration-dependent fallback.
- Add meaningful tests through supported public entry points for reachable behavior. Exercise runtime-dependent behavior with the relevant real configuration where feasible.
- For redundant branches, consider a focused, behavior-preserving cleanup with evidence that the protected behavior remains covered.
- Do not manufacture private framework state or exclude code merely to reach a percentage. Any justified exception or policy change requires explicit owner approval.
Acceptance
Keep evidence in CI artifacts or the issue. Do not reintroduce the issue-208 development performance reports. Discriminator lookup changes and a general performance-documentation refresh are outside this issue's scope.
Follow-up to #208 and merged #223.
The typed migration dispatch work is complete, but the repository's requirement for 100% branch coverage in core components is still not met. Aggregate coverage above 95% does not satisfy that requirement. Merging #223 did not establish a coverage-policy exception.
The last verified snapshot was
aafe5a1714b01cc5e388887119a8276bff728f15, merged by #223:MigratorReference.Typed.cs,MigratorInvokerFactory.cs, andJsonMigratableTypesreached 100% on both frameworks.UnionCaseRouting.csreached 100% on .NET 11. The remaining uncovered branches were:ExternalMigratorInvoker.csJsonMigratableConverter.csJsonMigratableConverter.NonObjectMatching.csJsonMigrationTypeInfoResolver.csMigratorReference.csResolverLeaves.csSourceValueShape.csThese include defensive reader checks, type-name and reflection fallbacks, and guards following earlier validation. Reachability needs to be established before deciding how to cover or simplify them.
Work
origin/mainon .NET 10 and .NET 11, recording the exact commit and per-component branch counts.Acceptance
Keep evidence in CI artifacts or the issue. Do not reintroduce the issue-208 development performance reports. Discriminator lookup changes and a general performance-documentation refresh are outside this issue's scope.