Skip to content

P0 Workbench Reports: port ARIEC61850 fail-closed SCL semantic member binding - #230

Open
masarray wants to merge 27 commits into
mainfrom
feat/workbench-semantic-report-model-binding-p0-20261017
Open

masarray wants to merge 27 commits into
mainfrom
feat/workbench-semantic-report-model-binding-p0-20261017

Conversation

@masarray

@masarray masarray commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Source reference and problem

Implemented against masarray/ARIEC61850 src/AR.Iec61850/Mms/MmsSemanticReportValueProjector.cs and masarray/arsas Services/NativeIec61850Client.SemanticReporting.cs. Both require model-scoped DataSet/member identity and fail-closed structure validation. Workbench previously exposed only positional Field N on all report structures regardless of validated SCL.

Native changes

  • New pure C++ BrowserReportSemanticBinding.hpp, reusing existing MmsLiveModelDocument, native MmsReportValue and decoded MmsDataValue. No second parser, association, control writer or GUI-time MMS decoding.
  • Exact authority only: trusted SCL initial model with exact online identity, unique DataSet and FCDA ordinal/reference, same FC, exact DataObject, exact-source DA type/FC. Reject unexpected nested arrays, unknown types, mismatched cardinality, wire type mismatches, conflicting DataRef, and repeated indistinguishable scalar types.
  • On a verified flat scalar structure, show SCL DA names (stVal, q, etc) and decoded bounded values under the existing lazy report row. On any ambiguous/mismatched model, preserve truthful Field N (wire order) fallback.
  • Existing worker's generation-local frozen canonical model (already copied on the GUI thread during connectToIed()) owns the optional semantic binding. Only the latest report projects child details; history stays lightweight. No QObject cross-thread or speculative writes.
  • Native negative checks added to ied_report_workspace_qa and static Browser convergence guard, with SCL-vs-positional provenance label in the existing QML Inspector.

Deliberate boundaries

This PR establishes P0 phase 1, not full semantic parity: only flat structures with unique typed children are named. Nested/duplicate-typed/vendor-specific structures, known CDC enums without authoritative enum mapping, and unit/multiplier are not fabricated. Follow-on expands authoritative nested schema, exact enum values and metadata with the same model-owned approach.

Gate

Require exact-head IED Simulator Qt, naming, Codex review, and Windows source-matching build before a public readiness claim; installed Windows/real relay/aplikasi pembanding side-by-side remain external acceptance.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-17T11:58:22.442596Z b55452b Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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: f29e8ba2e7

ℹ️ 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".

Comment thread apps/ied_simulator/src/BrowserReportSemanticBinding.hpp
Comment thread apps/ied_simulator/src/MmsReportController.cpp Outdated

Copy link
Copy Markdown
Owner Author

@codex review

Please review exact current head c4cb126feffaba716b8ee5f8a46ca5963a0ca9b3. The two P1/P2 findings were addressed: MMS type-class duplication is rejected; optional DatSet uses verified active RCB state. Includes native q/t typed evidence and negative tests. Please scrutinize SCL authority, worker lifetime and model-to-wire ordering.

Copy link
Copy Markdown
Owner Author

@codex review

Please re-review exact HEAD e26a4595b10c18ef18176c17fe35795411e78c5d. Two earlier findings fixed, active RCB DatSet fallback and MMS-kind ambiguity. Additional fail-closed guard disallows using a canonical model for another endpoint. Scope is model-backed flat scalar children, Quality/TimeQuality and explicit positional fallback; no claim of nested/units/enum parity.

@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: e26a4595b1

ℹ️ 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".

Comment thread apps/ied_simulator/qml/BrowserReportPane.qml
Comment thread apps/ied_simulator/src/BrowserReportSemanticBinding.hpp Outdated

Copy link
Copy Markdown
Owner Author

@codex review

Please review exact latest head 825983582e98146140503705618ad3cad9223b91. The two latest findings were addressed: exact canonical IEC/MMS aliases with FC validation and two deliberate local q/t inspectors with corrected regression. Added native positive/negative tests for alias, wrong FC/leaf and malformed 13-bit Quality; project metadata avoids the prohibited competitor name.

@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: 825983582e

ℹ️ 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".

Comment thread apps/ied_simulator/src/BrowserReportSemanticBinding.hpp Outdated
Comment thread apps/ied_simulator/src/BrowserReportSemanticBinding.hpp Outdated
Comment thread apps/ied_simulator/src/BrowserReportMemberProjection.hpp Outdated

Copy link
Copy Markdown
Owner Author

@codex review

Please review the exact latest source head b55452b85f29b59f0dc88e3be12aa5b8b9f264f1. Fixed the actual canonical Open SCL model source (not only the transient snapshot), normalized native MMS DataSet identity, restored clean C++ source after a malformed patch, and bounded verified detail maps to 32 members. Added native alias/Quality/negative tests and static guard. Please verify semantic source trust and fail-closed behavior.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

Copy link
Copy Markdown
Owner Author

@codex review

Retry requested for exact commit b55452b85f29b59f0dc88e3be12aa5b8b9f264f1: previous review returned status=failed without new inline findings. All seven previous threads are resolved. Please complete a fresh review of native Open SCL authority, normalized FCDA/DataSet identity, Quality wire shape, member detail cap and report regression.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

Copy link
Copy Markdown
Owner Author

P0 SSOT recovery checkpoint: https://github.com/masarray/arstack61850/blob/main/docs/WORKBENCH_SSOT_LIVE_DATA_MODEL_MASTER_HANDOFF.md

DO NOT MERGE PR #230 yet. Exact HEAD b55452b85f29b59f0dc88e3be12aa5b8b9f264f1 has IED Simulator Qt failure in Browser convergence contract (BROWSER_REPORT_IDLE_FAIL missing=buildReportUi(worker->report->snapshot())), and latest code review status is not clean. Even when the gate passes, isolated SCL naming in the Report inspector does not complete the whole Workbench SSOT Live Data Model. Reconcile accepted Report sample/event ingress with the existing canonical MmsLiveTreeModel and all consumers, preserving IED/FCDA/generation/q/t/source evidence. Read the linked master handoff before editing; no competitor brand names in repository text.

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