- Current milestone: Milestone 16, usage documentation assembled from compiling samples.
- Current state: Complete against the current specification, including opt-in
GuardNonNullSourcebehavior. - Completed milestones: Milestone 1; Milestone 2; Milestone 3; Milestone 4; Milestone 5; Milestone 6; Milestone 7; Milestone 8; Milestone 9; Milestone 10; Milestone 11; Milestone 12; Milestone 13; Milestone 14; Milestone 15; Milestone 16.
- Current work: Opt-in non-null root source guard specification and implementation synchronized.
- Work completed: Added
GuardNonNullSourcetoLiteMapperAttributeandMappingOptionsAttribute; resolved mapper-level and method-level configuration with default disabled; removed default root-source guards from new-object/update/nested generated paths; preserved nullable-sourceThrowbehavior; kept update destination guards; adjusted recursive tracker generation so disabled root guards do not produce nullable warnings; updated public API baselines, snapshots, usage docs, specification, and decision log. - Tests added or updated: Added nullable behavior coverage for disabled-by-default root guards, mapper-level enabled guards, and method-level disabled overrides. Updated public API shape tests and generated-source snapshots.
- Diagnostics added: None.
- Generated-source review: Representative snapshots now show no default root-source guard for non-null source parameters. Update snapshots still retain destination null guards. Recursive tracker calls use null-forgiving source arguments internally to avoid nullable warnings without reintroducing a public root guard.
- Validation evidence:
dotnet test tests\Mammoth.LiteMapper.Runtime.Tests\Mammoth.LiteMapper.Runtime.Tests.csproj --no-restore --filter Milestone2PublicApiTestspassed with 5 tests;dotnet test tests\Mammoth.LiteMapper.Generator.Tests\Mammoth.LiteMapper.Generator.Tests.csproj --no-restore --filter Milestone7NullableBehaviorTestspassed with 5 tests;dotnet test tests\Mammoth.LiteMapper.Generator.Tests\Mammoth.LiteMapper.Generator.Tests.csproj --no-restorepassed with 67 tests;dotnet test tests\Mammoth.LiteMapper.Packaging.Tests\Mammoth.LiteMapper.Packaging.Tests.csproj --no-restore --filter Milestone16UsageDocumentationTestspassed with 1 test using a 10-minute timeout;dotnet build Mammoth.LiteMapper.sln --no-restorepassed with 0 warnings;dotnet test Mammoth.LiteMapper.sln --no-buildpassed with 88 tests and 1 local Windows Native AOT prerequisite skip. - Skipped validation: Controlled release-quality benchmark runs with stable iteration counts were not run; the documented dry run was executed.
- Blockers: none known.
- Known issues: NuGet pack emits non-fatal missing-readme warnings for all three packages; configurable unmapped-member diagnostics use paired internal descriptors with the same stable IDs and should receive editorconfig override coverage in future diagnostics work; constructor-parameter explicit configuration and optional-parameter
UseTargetDefaultinteractions need broader coverage when constructor binding is expanded beyond current member-initializer scenarios; generated collection helpers currently contain duplicated null guards. - Next permitted action: Proceed with normal release preparation or review.