Skip to content

feat: add structured scalar evaluation diagnostics - #16

Merged
roncohen merged 5 commits into
mainfrom
feat/latest-error-diagnostics
Oct 6, 2026
Merged

roncohen merged 5 commits into
mainfrom
feat/latest-error-diagnostics

Conversation

@roncohen

@roncohen roncohen commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds structured, non-fatal scalar evaluation diagnostics and pre-initialization check diagnostics. Based on freshly fetched main (5e40623).

  • Add INVALID_CONTEXT_VALUE, INVALID_TARGETING_VALUE, and UNKNOWN_OPERATOR, with field/operator metadata and messages that omit raw context/comparison values.
  • Fail invalid numeric/date conditions closed across negations and OR groups, deduplicate diagnostics across rules, and keep later rules evaluable. Preserve existing .NET numeric/date parsing; invalid or out-of-range relative-date offsets now return diagnostics instead of throwing.
  • Retain unknown operator names through definition/fallback snapshot serialization instead of rejecting the entire fetched flag set. Derive parsing, serialization, and operator validation from one wire-name mapping.
  • Append CLIENT_NOT_INITIALIZED to online check telemetry, including override checks, without adding it to bootstrap results. Suppress initialization errors in offline mode.
  • Keep diagnostics in bootstrap JSON (evaluationErrors) and check telemetry (evalErrors), rate-limit warnings by diagnostic identity, and document the diagnostic codes.

Verification

  • dotnet format dotnet-sdk.sln --verify-no-changes --severity warn --no-restore
  • dotnet build dotnet-sdk.sln --configuration Release --no-restore -warnaserror (including netstandard2.0)
  • dotnet test dotnet-sdk.sln --configuration Release --no-build --logger "console;verbosity=minimal" — 205 SDK tests + 5 example tests pass on each of .NET 8 and .NET 10
  • git diff --check

Regression coverage includes invalid context vs targeting values, relative-date offsets, numeric infinity semantics, unknown/malformed operators, fallback snapshot round trips, fail-closed rules, healthy sibling flags, bootstrap/check wire payloads, warning deduplication, pre-initialization/override checks, disabled telemetry, and offline access.

Copilot AI balanced review requested due to automatic review settings October 6, 2026 12:59

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 force-pushed the feat/latest-error-diagnostics branch from 824f736 to a33ad49 Compare October 6, 2026 17:09
@roncohen roncohen changed the title feat: port latest Node SDK evaluation diagnostics feat: add structured scalar evaluation diagnostics Oct 6, 2026
Copilot AI balanced review requested due to automatic review settings October 6, 2026 18:41

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.

Copilot AI balanced review requested due to automatic review settings October 6, 2026 18:42

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.

Copilot AI balanced review requested due to automatic review settings October 6, 2026 18:43

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.

Copilot AI balanced review requested due to automatic review settings October 6, 2026 18:45

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 6dfab7b into main Oct 6, 2026
2 of 3 checks passed
@roncohen
roncohen deleted the feat/latest-error-diagnostics branch October 6, 2026 18:51
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