Skip to content

feat: register states and list pipeline behaviors without reflection - #643

Merged
StevenTCramer merged 5 commits into
masterfrom
task/104-remove-remaining-reflection-from-timewarpstate-ens
Oct 12, 2026
Merged

StevenTCramer merged 5 commits into
masterfrom
task/104-remove-remaining-reflection-from-timewarpstate-ens

Conversation

@StevenTCramer

Copy link
Copy Markdown
Collaborator

Summary

AddTimeWarpState applies source-generated TryAddTransient<T>() registrars. LogTimeWarpStateMiddleware matches closed behavior registrations against definitions recorded by PipelineBehaviorRegistrySourceGenerator. TimeWarp.State no longer suppresses trimming or AOT warnings. No public API was removed. Redux DevTools stays deleted (task 112).

Review disposition

  • Effort 3 (by-diff), roster: general. 2 rounds.
  • Final counts: bug 0; suggestion 3 fixed / 1 wontfix; nit 2 fixed / 1 wontfix; 0 open.
  • Disposition: accepted-exceptions. M5 wontfix: the pipeline generator keeps the clone generator's CompilationProvider shape. M6 wontfix: the private protected naming gap predates this task (097) and belongs to the clone generator.
  • Fixes in 0f1411f: StateRegistrationRegistry.Apply runs RuntimeHelpers.RunModuleConstructor before applying registrars, release notes and cloning.md list the behavior changes and the generator requirement, GetComponentOrder remarks, and the pipeline generator checks that the registry type exists.
  • Artifacts: review/review-framework.md, review/round-1/ (general, merged), review/round-2/ (general, merged), review/disposition.md.

Test plan

Smoke:

dotnet build source/timewarp-state/timewarp-state.csproj -c Release --nologo
rg -n 'UnconditionalSuppressMessage|GetTypes\(|GetAssemblies\(|GetMethod\(|GetInterfaces\(|\.Invoke\(' source/timewarp-state
dotnet test tests/timewarp-state-tests/timewarp-state-tests.csproj --nologo
dotnet test tests/timewarp-state-source-generator-tests/timewarp-state-source-generator-tests.csproj --nologo
ganda repo audit

Expect: the Release build reports zero IL2xxx/IL3xxx warnings. rg prints only configureTimeWarpStateOptionsAction?.Invoke in service-collection-extensions.add-timewarp-state.cs. Both test projects pass, including nested, generic-base, closed ICloneable, and host-registration cases, plus the middleware order log. ganda repo audit exits 0.

Kanban task 104
Session: Grok Bot

StevenTCramer and others added 5 commits October 12, 2026 21:04
AddTimeWarpState scanned assemblies, and the middleware log walked interfaces.
Both kept trim suppressions in an IsAotCompatible library. The clone generator
now emits TryAddTransient<T>, and a pipeline generator records behavior
definitions so the log matches closed registrations.

Co-Authored-By: Grok <noreply@x.ai>
Apply runs each assembly's module constructor first; docs and GetComponentOrder remarks cover the review notes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fter 2 rounds

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@StevenTCramer
StevenTCramer merged commit dfed12c into master Oct 12, 2026
1 check passed
@StevenTCramer
StevenTCramer deleted the task/104-remove-remaining-reflection-from-timewarpstate-ens branch October 12, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant