Skip to content

fix(soe): suppress Boolean display-only false process transitions - #372

Merged
masarray merged 2 commits into
mainfrom
fix/boolean-report-edge-v1640-baseline
Sep 24, 2026
Merged

masarray merged 2 commits into
mainfrom
fix/boolean-report-edge-v1640-baseline

Conversation

@masarray

Copy link
Copy Markdown
Owner

Root cause

Operator report formatting emits True [1] / False [0], but the runtime semantic-edge comparator previously normalized raw Boolean strings as bool:1/bool:0 and the formatted strings as state:1/state:0. A presentation-only change could be interpreted as a real process transition.

Targeted correction

  • Normalize only exact Boolean-family display tokens to the existing Boolean semantic states.
  • Cover Boolean/BOOL/SPS/SPC/SinglePointStatus, without collapsing DPC [01] / [10] or other numeric states.
  • Add direct behavioral regression cases for representation-only updates, actual transitions, inconsistent tokens, and operator formatter output.

Stable release boundary

  • Branch created from stable production main 808acd38c2a89aebc0b302d6b0218e921cabc6b2 with unchanged engine pin 648124097621046f5f127ceb1cf853fea54db730.
  • Exactly one runtime comparison function and one regression test file; no changes to Discovery, MMS, RCB, DataSet, SCL export, release identity or packaged stable v1.6.40.
  • This is a proposed post-release maintenance fix, not a new stable release or claim of physical retest.

Acceptance

CI must pass. A process edge must continue to use actual report values/reasons; display normalization must not rewrite raw evidence.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 404822ab7b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

normalizedDataType.Equals("SPS", StringComparison.OrdinalIgnoreCase) ||
normalizedDataType.Equals("SPC", StringComparison.OrdinalIgnoreCase) ||
normalizedDataType.Equals("SINGLEPOINTSTATUS", StringComparison.OrdinalIgnoreCase);
if (isBooleanPoint)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Handle formatter Boolean tokens for generic status metadata

When a Boolean .stVal is discovered without exact schema typing, NativeMmsDiscoveryMapper.InferDataType classifies the common ST fallback as Enum; an MMS Boolean poll is then displayed as True, while FormatReportProcessValue formats the same report string as True [1] regardless of the declared type. Because this block only recognizes Boolean-family metadata, the comparator still produces bool:1 versus state:1 and emits a false SOE transition. Normalize these exact formatter-generated Boolean tokens independently of the fallback metadata, or otherwise preserve the raw-value semantic type, while retaining the DPC-specific handling.

AGENTS.md reference: AGENTS.md:L153-L153

Useful? React with 👍 / 👎.

@masarray
masarray merged commit 15ed30e into main Sep 24, 2026
9 checks passed
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