Skip to content

Unify stale-client and local-process operation semantics - #47

Merged
AriusII merged 1 commit into
mainfrom
feat/cli-021-stale-local-operation-policy
Sep 21, 2026
Merged

AriusII merged 1 commit into
mainfrom
feat/cli-021-stale-local-operation-policy

Conversation

@AriusII

@AriusII AriusII commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • separates offline BCL process diagnostics from Cheat Engine target selection via ILocalProcessDiagnostics and LocalProcessId
  • treats missing local metadata as optional enrichment rather than proof that Cheat Engine detached the target
  • admits activation before capability, policy, cancellation, or local discovery work across gated and stateful domains

Validation

  • dotnet build CheatEngine.Client.slnx --configuration Release --no-restore
  • dotnet test --project tests/CheatEngine.Client.Core.Tests/CheatEngine.Client.Core.Tests.csproj --configuration Release --no-build --no-restore (238 passed)
  • dotnet test --project tests/CheatEngine.Client.Extensions.DependencyInjection.Tests/CheatEngineClientServiceCollectionExtensionsTests.csproj --configuration Release --no-build --no-restore (24 passed)
  • full solution test run: 522 passed; one existing source-generator snapshot test failed only because expected CRLF output differed from generated LF output

Closes #37

Summary by CodeRabbit

  • New Features

    • Added offline local-process diagnostics with filtered, bounded, ordered, and cancellation-aware snapshots.
    • Added validated local process identifiers and clearer separation between local metadata and Cheat Engine target identity.
    • Local process metadata can remain usable after client activation expires.
  • Bug Fixes

    • Stateful operations now reject expired activations consistently before capability checks or execution.
    • Improved cancellation handling for attachment, Lua execution, and local process discovery.
    • Attachments can succeed when optional local metadata is unavailable.
  • Documentation

    • Clarified activation, cancellation, diagnostics, and target-identity behavior.

@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: 32a61399-53f2-4377-b44a-f7203a435788

📥 Commits

Reviewing files that changed from the base of the PR and between 070802d and 3b12484.

📒 Files selected for processing (31)
  • README.md
  • docs/engineering/work-items/CLI-021.md
  • libs/CheatEngine.Client.Abstractions/Processes/ILocalProcessDiagnostics.cs
  • libs/CheatEngine.Client.Abstractions/Processes/IProcessClient.cs
  • libs/CheatEngine.Client.Abstractions/Processes/LocalProcessId.cs
  • libs/CheatEngine.Client.Abstractions/Processes/ProcessInfoSnapshot.cs
  • libs/CheatEngine.Client.Abstractions/Processes/ProcessSnapshot.cs
  • libs/CheatEngine.Client.Abstractions/PublicAPI.Unshipped.txt
  • libs/CheatEngine.Client.Core/Domains/Allocations/UnavailableAllocationClient.cs
  • libs/CheatEngine.Client.Core/Domains/Assembly/UnavailableAssemblyClient.cs
  • libs/CheatEngine.Client.Core/Domains/Dbvm/UnavailableDbvmClient.cs
  • libs/CheatEngine.Client.Core/Domains/Debugger/UnavailableDebuggerClient.cs
  • libs/CheatEngine.Client.Core/Domains/Events/UnavailableCapabilityFailure.cs
  • libs/CheatEngine.Client.Core/Domains/Hashing/UnavailableHashingClient.cs
  • libs/CheatEngine.Client.Core/Domains/Hotkeys/UnavailableHotkeyClient.cs
  • libs/CheatEngine.Client.Core/Domains/InspectionClient.cs
  • libs/CheatEngine.Client.Core/Domains/LocalProcessDiagnostics.cs
  • libs/CheatEngine.Client.Core/Domains/LuaClient.cs
  • libs/CheatEngine.Client.Core/Domains/ProcessClient.cs
  • libs/CheatEngine.Client.Core/Domains/RemoteExecution/UnavailableRemoteExecutionClient.cs
  • libs/CheatEngine.Client.Core/Domains/Speed/UnavailableSpeedClient.cs
  • libs/CheatEngine.Client.Core/Domains/TableClient.cs
  • libs/CheatEngine.Client.Core/Domains/Timers/UnavailableTimerClient.cs
  • libs/CheatEngine.Client.Core/Domains/UnavailableValueScanner.cs
  • libs/CheatEngine.Client.Core/Domains/UnsafeLuaClient.cs
  • libs/CheatEngine.Client.Extensions.DependencyInjection/CheatEngineClientBuilder.cs
  • libs/CheatEngine.Client.Extensions.DependencyInjection/CheatEngineClientServiceCollectionExtensions.cs
  • tests/CheatEngine.Client.Core.Tests/Domains/LocalProcessDiagnosticsTests.cs
  • tests/CheatEngine.Client.Core.Tests/Domains/ProcessClientTests.cs
  • tests/CheatEngine.Client.Core.Tests/Domains/UnavailableValueScannerTests.cs
  • tests/CheatEngine.Client.Extensions.DependencyInjection.Tests/CheatEngineClientServiceCollectionExtensionsTests.cs
 _____________________________________________________________________
< No matter how far down the wrong road you have gone, turn back now. >
 ---------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ 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 ca9546c into main Sep 21, 2026
4 of 5 checks passed
@AriusII
AriusII deleted the feat/cli-021-stale-local-operation-policy branch September 21, 2026 21:16
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