Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,21 @@ ship.

### Added

### Changed

### Security

### Deployment

## [1.1.0] - 2026-10-16

### Added

- **Optional Lua operations.** Generated operations accept trailing SDK `LuaOptional<T>` inputs of SDK-supported
scalar types and one optional trailing `out` result on a `bool` binding. Their public surface uses the Client-owned
`LuaOptional<T>` and its
`Omitted`, `Nil` and `Of` factories; omitted arguments, absent results, explicit `nil` and present values stay
distinct. Result mappers run only for present optional values. Existing scalar operation signatures stay unchanged.
`LuaOptional<T>` and its `Omitted`, `Nil` and `Of` factories; omitted arguments, absent results, explicit `nil` and
present values stay distinct. Result mappers run only for present optional values. Existing scalar operation
signatures stay unchanged.

### Changed

Expand Down
11 changes: 11 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,17 @@ The recorded run's id is written here, and its scenario results go to the `CHANG
from that evidence. Until it is committed, no document claims a host qualification (`QualificationEvidenceTests`). A CI
result is never presented as a host result, and a scenario that was not run stays not run.

### 1.1.0 release-only host-check waiver — 2026-10-16

For the requested 1.1.0 package publication, this dated waiver covers the release-only host checks Q09, Q10, Q40,
Q43, Q44, Q45 and Q46. They are not executed in this release session: no operator-driven Cheat Engine qualification
session or committed live receipts are available. The package-consumer fixtures cover installation and template
contracts independently; they do not establish the host portion of Q40.

This waiver permits package publication only. It does not provide a scenario result, populate
`HostQualificationEvidence.Recorded`, satisfy a capability's qualification gate, close F05, or lift CECLIENT5001–5004.
Runtime qualification remains `Unknown`. A later release needs its own live evidence or a newly dated release waiver.

## Publish

The release commit must first land on the first-parent history of `main`; the workflow rejects a tag on any other
Expand Down
2 changes: 1 addition & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Source status as of October 7, 2026. "Shipped" below describes the 1.0.0 impleme
| CLI-022–023 | Shipped; host deployment evidence pending | Package-consumer, template and deployment-closure checks exist. Actual Cheat Engine loading and coexistence remain a separate gate. |
| CLI-024 | Partly implemented; host evidence pending | The qualification runner and fake-port benchmarks exist. Committed live receipts, hosted Client-versus-SDK measurements and published performance budgets remain outstanding. |

The current development line is 1.1. Optional Lua operations are implemented for this line, and package validation uses the published 1.0.0 baseline. Neither change is a published 1.1 release. Qualification and hosted benchmarks remain separate tasks; no receipt or performance result is inferred from a build, package check or fake-port benchmark.
The 1.1 release line adds optional Lua operations, and package validation uses the published 1.0.0 baseline. The [1.1.0 changelog](CHANGELOG.md#110---2026-10-16) records its release scope; package publication is verified through NuGet separately. Qualification and hosted benchmarks remain separate tasks; no receipt or performance result is inferred from a build, package check or fake-port benchmark.

| Phase | Outcome | Exit evidence |
|---|---|---|
Expand Down
16 changes: 16 additions & 0 deletions libs/CheatEngine.Client.Abstractions/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,15 @@ CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RemainingCount.get -> int
CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RemovedCount.get -> int
CheatEngine.Client.Lua.LuaModuleReleaseOutcome.ReplacementCount.get -> int
CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RestoredCount.get -> int
CheatEngine.Client.Lua.LuaOptional
CheatEngine.Client.Lua.LuaOptional<T>
CheatEngine.Client.Lua.LuaOptional<T>.Equals(CheatEngine.Client.Lua.LuaOptional<T> other) -> bool
CheatEngine.Client.Lua.LuaOptional<T>.HasValue.get -> bool
CheatEngine.Client.Lua.LuaOptional<T>.IsNil.get -> bool
CheatEngine.Client.Lua.LuaOptional<T>.IsOmitted.get -> bool
CheatEngine.Client.Lua.LuaOptional<T>.LuaOptional() -> void
CheatEngine.Client.Lua.LuaOptional<T>.TryGetValue(out T? value) -> bool
CheatEngine.Client.Lua.LuaOptional<T>.Value.get -> T?
CheatEngine.Client.Lua.LuaScript
CheatEngine.Client.Lua.LuaScript.ChunkName.get -> string?
CheatEngine.Client.Lua.LuaScript.Equals(CheatEngine.Client.Lua.LuaScript other) -> bool
Expand Down Expand Up @@ -941,6 +950,8 @@ override CheatEngine.Client.Inspection.InspectionCollectionRequest.GetHashCode()
override CheatEngine.Client.Inspection.SymbolRegistration.GetHashCode() -> int
override CheatEngine.Client.Lua.LuaExportDescriptor.GetHashCode() -> int
override CheatEngine.Client.Lua.LuaModuleReleaseOutcome.ToString() -> string!
override CheatEngine.Client.Lua.LuaOptional<T>.Equals(object? obj) -> bool
override CheatEngine.Client.Lua.LuaOptional<T>.GetHashCode() -> int
override CheatEngine.Client.Lua.LuaScript.GetHashCode() -> int
override CheatEngine.Client.Memory.MemoryBytesReadRequest.GetHashCode() -> int
override CheatEngine.Client.Memory.MemoryReadRequest<T>.GetHashCode() -> int
Expand Down Expand Up @@ -996,6 +1007,11 @@ static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.Create(string! moduleName,
static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.PartiallyReleased(string! moduleName, int removedCount, int restoredCount, int replacementCount, System.Collections.Immutable.ImmutableArray<string!> failedExports) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome!
static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.RefusedRuntimeChanged(string! moduleName, int remainingCount) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome!
static CheatEngine.Client.Lua.LuaModuleReleaseOutcome.Released(string! moduleName, int removedCount, int restoredCount, int replacementCount) -> CheatEngine.Client.Lua.LuaModuleReleaseOutcome!
static CheatEngine.Client.Lua.LuaOptional.Nil<T>() -> CheatEngine.Client.Lua.LuaOptional<T>
static CheatEngine.Client.Lua.LuaOptional.Of<T>(T value) -> CheatEngine.Client.Lua.LuaOptional<T>
static CheatEngine.Client.Lua.LuaOptional.Omitted<T>() -> CheatEngine.Client.Lua.LuaOptional<T>
static CheatEngine.Client.Lua.LuaOptional<T>.operator !=(CheatEngine.Client.Lua.LuaOptional<T> left, CheatEngine.Client.Lua.LuaOptional<T> right) -> bool
static CheatEngine.Client.Lua.LuaOptional<T>.operator ==(CheatEngine.Client.Lua.LuaOptional<T> left, CheatEngine.Client.Lua.LuaOptional<T> right) -> bool
static CheatEngine.Client.Lua.LuaScript.operator !=(CheatEngine.Client.Lua.LuaScript left, CheatEngine.Client.Lua.LuaScript right) -> bool
static CheatEngine.Client.Lua.LuaScript.operator ==(CheatEngine.Client.Lua.LuaScript left, CheatEngine.Client.Lua.LuaScript right) -> bool
static CheatEngine.Client.Memory.MemoryBytesReadRequest.operator !=(CheatEngine.Client.Memory.MemoryBytesReadRequest left, CheatEngine.Client.Memory.MemoryBytesReadRequest right) -> bool
Expand Down
16 changes: 0 additions & 16 deletions libs/CheatEngine.Client.Abstractions/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1 @@
#nullable enable
CheatEngine.Client.Lua.LuaOptional
CheatEngine.Client.Lua.LuaOptional<T>
CheatEngine.Client.Lua.LuaOptional<T>.Equals(CheatEngine.Client.Lua.LuaOptional<T> other) -> bool
CheatEngine.Client.Lua.LuaOptional<T>.HasValue.get -> bool
CheatEngine.Client.Lua.LuaOptional<T>.IsNil.get -> bool
CheatEngine.Client.Lua.LuaOptional<T>.IsOmitted.get -> bool
CheatEngine.Client.Lua.LuaOptional<T>.LuaOptional() -> void
CheatEngine.Client.Lua.LuaOptional<T>.TryGetValue(out T? value) -> bool
CheatEngine.Client.Lua.LuaOptional<T>.Value.get -> T?
override CheatEngine.Client.Lua.LuaOptional<T>.Equals(object? obj) -> bool
override CheatEngine.Client.Lua.LuaOptional<T>.GetHashCode() -> int
static CheatEngine.Client.Lua.LuaOptional.Nil<T>() -> CheatEngine.Client.Lua.LuaOptional<T>
static CheatEngine.Client.Lua.LuaOptional.Of<T>(T value) -> CheatEngine.Client.Lua.LuaOptional<T>
static CheatEngine.Client.Lua.LuaOptional.Omitted<T>() -> CheatEngine.Client.Lua.LuaOptional<T>
static CheatEngine.Client.Lua.LuaOptional<T>.operator !=(CheatEngine.Client.Lua.LuaOptional<T> left, CheatEngine.Client.Lua.LuaOptional<T> right) -> bool
static CheatEngine.Client.Lua.LuaOptional<T>.operator ==(CheatEngine.Client.Lua.LuaOptional<T> left, CheatEngine.Client.Lua.LuaOptional<T> right) -> bool
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
; Shipped analyzer releases
; https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md

## Release 1.1.0

; No diagnostic IDs or severities were added or changed in this release.

### New Rules

Rule ID | Category | Severity | Notes
------------|------------------------|----------|--------------------------------------------------------------------------------------

## Release 1.0.0

### New Rules
Expand Down
Loading