Skip to content

fix: preserve context types in check-event deduplication - #13

Merged
roncohen merged 1 commit into
mainfrom
fix/canonical-context-deduplication
Sep 15, 2026
Merged

roncohen merged 1 commit into
mainfrom
fix/canonical-context-deduplication

Conversation

@roncohen

Copy link
Copy Markdown
Contributor

Summary

Apply the relevant context-identity improvement from JavaScript PR #712 without adding a remote-evaluation API:

  • Replace flattened query-string check-event deduplication keys with canonical JSON.
  • Preserve JSON types, empty arrays, nested object structure, and array order.
  • Recursively sort object keys, including objects inside arrays, so equivalent contexts share a deduplication key.
  • Add integration/unit regressions for type collisions, dotted keys versus nested paths, array indices versus object keys, and stable nested ordering.

This PR is independent of the array-targeting/diagnostics port and does not require backend transport changes. It changes only internal check-event identity, not the event payload or legacy FlattenJson behavior.

Validation

  • dotnet build dotnet-sdk.sln -c Release: zero warnings/errors; library builds for .NET 10 and .NET Standard 2.0.
  • dotnet test dotnet-sdk.sln -c Release --no-build: 270 passed (130 SDK + 5 example tests on each of .NET 8 and .NET 10).
  • git diff --check passed.
  • Verified conflict-free merge with the separate array-targeting/diagnostics branch.

Copilot AI lite review requested due to automatic review settings September 15, 2026 06:03

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@roncohen
roncohen merged commit 46abb21 into main Sep 15, 2026
2 of 3 checks passed
@roncohen
roncohen deleted the fix/canonical-context-deduplication branch September 15, 2026 12:03
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.

2 participants