Skip to content

Specify activation-local DI and multi-plugin composition - #49

Merged
AriusII merged 1 commit into
mainfrom
test/cli-012-activation-di-contract
Sep 21, 2026
Merged

AriusII merged 1 commit into
mainfrom
test/cli-012-activation-di-contract

Conversation

@AriusII

@AriusII AriusII commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #28

Summary

  • Specify the fresh-provider-per-enable Client composition boundary, disposal ownership, sibling-scope behavior, and the absence of persistent-root hosting.
  • Cover provider-created singleton renewal, scoped-module and dependency disposal, non-disposable aliases, and options across two activation epochs.
  • Add an opt-in two-plugin Client fixture aligned with SDK Remove SonarCloud CI integration #56's observation protocol, including PluginId, epoch, assembly MVID, and host-selected load-context facts.

Validation

  • dotnet restore CheatEngine.Client.slnx --locked-mode
  • dotnet build CheatEngine.Client.slnx --configuration Release --no-restore (0 warnings, 0 errors)
  • dotnet test --solution CheatEngine.Client.slnx --configuration Release --no-build --no-restore (553 passed)
  • Native AOT probe published and executed for win-x64.
  • Engineering manifest validator and six Python validator tests passed.

Qualification limits

  • The fixture has build evidence only. No Cheat Engine 7.7 live run, loader-isolation, unload, target, or concurrency qualification is claimed.
  • It composes current Client source with the released SDK 1.0.0 package; it is not a Client package-consumer smoke test and does not claim that SDK package contains the later Remove SonarCloud CI integration #56 merge.

Summary by CodeRabbit

  • New Features

    • Added opt-in fixtures for running two client plugins together on Windows x64, with separate Lua modules and identity diagnostics.
    • Added lifecycle validation for plugin activation, reactivation, scope sharing, and disposal behavior.
  • Documentation

    • Documented activation-scoped dependency lifetimes, provider and scope behavior, disposal ownership, and coexistence testing procedures.

@coderabbitai

coderabbitai Bot commented Sep 21, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 345fb4f1-d855-4cf7-83b1-57d5be15abf9

📥 Commits

Reviewing files that changed from the base of the PR and between 2d8c894 and 9b157f8.

📒 Files selected for processing (20)
  • CheatEngine.Client.slnx
  • docs/adr/0002-plugin-activation-lifecycle.md
  • libs/CheatEngine.Client.Extensions.DependencyInjection/README.md
  • libs/CheatEngine.Client.Hosting/README.md
  • templates/CheatEngine.Client.Templates/content/CheatEngine.Plugin/README.md
  • tests/CheatEngine.Client.Hosting.Tests/CheatEngineClientPluginTests.cs
  • tests/CheatEngine.Client.Hosting.Tests/CheatEnginePluginBuilderTests.cs
  • tests/CheatEngine.Client.LivePlugin.Coexistence/CoexistenceDiagnostics.cs
  • tests/CheatEngine.Client.LivePlugin.Coexistence/CoexistencePlugin.props
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginA/CheatEngine.Client.LivePlugin.Coexistence.PluginA.csproj
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginA/CoexistencePluginA.cs
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginA/CoexistencePluginAFunctions.cs
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginA/README.md
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginA/packages.lock.json
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginB/CheatEngine.Client.LivePlugin.Coexistence.PluginB.csproj
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginB/CoexistencePluginB.cs
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginB/CoexistencePluginBFunctions.cs
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginB/README.md
  • tests/CheatEngine.Client.LivePlugin.Coexistence/PluginB/packages.lock.json
  • tests/CheatEngine.Client.LivePlugin.Coexistence/README.md
 ______________________________________________________________________________________________________________________________________________
< Eliminate effects between unrelated things. Design components that are self-contained, independent, and have a single, well-defined purpose. >
 ----------------------------------------------------------------------------------------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@AriusII
AriusII merged commit 02077c0 into main Sep 21, 2026
4 of 5 checks passed
AriusII added a commit that referenced this pull request Sep 21, 2026
@AriusII
AriusII deleted the test/cli-012-activation-di-contract branch September 21, 2026 21:21
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