Skip to content

fix: apply precise framework interface filtering - #77

Merged
AGiorgetti merged 1 commit into
developfrom
feat/codex-framework-interface-filtering
Oct 5, 2026
Merged

AGiorgetti merged 1 commit into
developfrom
feat/codex-framework-interface-filtering

Conversation

@AGiorgetti

@AGiorgetti AGiorgetti commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Fixes #60.

  • Match the documented framework-type policy: the exact System namespace, its child namespaces, or an assembly named exactly mscorlib, using ordinal case-sensitive comparisons.
  • Retain application contracts in assemblies such as Systematic.Contracts and eliminate runtime-dependent IAsyncDisposable selection.
  • Add 17 regression cases for assembly/namespace boundaries, real disposable interfaces, and explicit Base/Self registration; document the policy in XML, README, and vNext fixes.
  • Preserve existing class filters, dependency versions, and CI workflow.

Executed validation

  • Baseline before the fix: all 673 existing tests passed on .NET 8/9/10.
  • Red/green: initial 16-case regression run failed 7 and passed 9 against the old implementation, then passed all 16 after the fix. A subsequent case-sensitivity control brings the final regression total to 17.
  • Final full suites: 690/690 tests passed on each of .NET 8.0.31, 9.0.20, and 10.0.12 (SDK 10.0.401).
  • Release solution build passed for all library/test targets, including netstandard2.0 and net472. The two existing net472 diagnostics-package support warnings remain.
  • Native DI hot-cache repro passed on .NET 8/9/10: 100 interleaved enumerations after observed native compilation per runtime.
  • Independent read-only review found no blocking issue; its suggested assembly-case regression is included.
  • Windows CI run 222 passed for head d377a95ef0720d25b64da24a52ddfc30a5baec08 (PR merge test commit dd90ab7693e0baf785baa23db611315803bbe4e5): 690/690 tests on each of net472/net8.0/net9.0/net10.0, plus all four native DI hot-cache runs. Logs confirm the real disposable-interface regression passes on every target, including Microsoft.Bcl.AsyncInterfaces on net472. Pack and Publish were correctly skipped.

Prepared with OpenAI Codex.

Use ordinal System namespace boundaries and the exact mscorlib assembly name. Cover application assembly prefixes, namespace and case boundaries, and actual async disposal contracts across supported targets.

Co-authored-by: Codex <codex@openai.com>
@AGiorgetti
AGiorgetti marked this pull request as ready for review October 5, 2026 14:14
@AGiorgetti
AGiorgetti merged commit 2e2d773 into develop Oct 5, 2026
2 checks passed
@AGiorgetti
AGiorgetti deleted the feat/codex-framework-interface-filtering branch October 5, 2026 14:26
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.

AssemblyInspector framework-interface filtering depends on assembly prefixes

1 participant