Skip to content

M2D-1: typed IEC Quality / UTC TimeQuality inspector for native Workbench - #163

Merged
masarray merged 2 commits into
mainfrom
ux/workbench-typed-quality-time-m2d
Oct 14, 2026
Merged

masarray merged 2 commits into
mainfrom
ux/workbench-typed-quality-time-m2d

Conversation

@masarray

Copy link
Copy Markdown
Owner

Baseline

Integrates after M2C PR #161 (main d437443). Native Qt Workbench only — no web UI, MMS protocol-engine changes, SMV/PTP or ESP32 firmware changes.

Implementation (one atomic commit)

  • Add MmsEngineeringEvidence.hpp: fail-closed typed decoder for IEC 61850 13-bit Quality (validity, eight detail bits, source, test, operator blocked) and UTC TimeQuality (leap seconds known, clock failure, clock not synchronized, 5-bit accuracy / unspecified).
  • Only use successful typed MMS Read AccessResults; never guess from a display hex/string. Invalid bit-length/unused bits or wrong MMS kind result in no evidence, never false defaults.
  • Propagate immutable per-sample evidence with existing read and post-write verification updates to the same canonical MmsLiveTreeModel nodes, including engineering context. No shadow store. Clear stale evidence when a subsequent value lacks typed evidence.
  • Reuse one compact BrowserEngineeringEvidence.qml panel in Data Model and DataSets; details are shown when a q/t DA is selected, not expanded eagerly across all entries.
  • Extend large-model regression with 13-bit bit mapping, substituted/test/operator-blocked, invalid input negative tests, TimeQuality flags, unspecified TimeAccuracy, canonical node propagation, stale-evidence invalidation. Extend QML source contract.

Limits / acceptance

  • This phase covers explicit MMS Read values in Browser Data Model / DataSets; offline SCL does not fabricate values and Reports-stream typed q/t projection is follow-up M2D-2.
  • Requires exact-head native Qt build, QML smoke, Browser convergence, 60k-node QA and Windows release hardening (CMake changed).
  • Preserve existing working M2C path and no cyclic MMS reads. Keep Draft until CI and exact Browser q/t visual evidence are reviewed.

CI discipline

One feature commit. Do not push small cosmetic commits or trigger unrelated domain CI matrices. Staged rollout; no installer publication or main merge until tested.

…nonical Browser

Decode 13-bit IEC Quality and UTC TimeQuality exclusively from successfully read MMS typed values, keep decoded metadata on the same canonical DA nodes, and expose a reusable dense inspector in Data Model and DataSets. Unknown or malformed evidence remains unknown, untyped updates clear stale evidence, all network reads stay explicit, and large-model regression covers bit mapping and accuracy. No protocol core/firmware changes.
Chocolatey feed 504 left NSIS unavailable but workflow continued through full MSVC build. Retry bounded twice, verify executable and version, propagate resolved path to packaging, and fail early before expensive release compile when package feed remains unavailable.
@masarray
masarray marked this pull request as ready for review October 14, 2026 13:24
@masarray
masarray merged commit e749617 into main Oct 14, 2026
5 checks passed

@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: 51badab313

ℹ️ 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 on lines +87 to +89
- name: Install and verify NSIS
shell: pwsh
run: choco install nsis --yes --no-progress
run: |

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 Separate the unrelated NSIS hardening

This evidence-focused commit also changes Chocolatey retry behavior and NSIS compiler discovery in the Windows packaging workflow, which addresses an independent CI failure mode and expands the review and rollback scope without contributing to typed Quality/UTC evidence. Move this workflow hardening into a separate focused change with its own validation.

AGENTS.md reference: AGENTS.md:L238-L240

Useful? React with 👍 / 👎.

Comment on lines +286 to +290
BrowserEngineeringEvidence {
theme: root.theme
engineeringEvidence: root.showSelectedEvidence
? (root.modelProvider.treeModel.selectedNode.engineeringEvidence || ({}))
: ({})

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep the evidence inspector inside the selected DataSet page

When a DataSet is selected, this component is the third direct child of the StackLayout, while currentIndex is limited to 0 or 1 for the overview and member list. A StackLayout displays only its current child, so the new inspector remains hidden even when hasEvidence is true; place it within the member-page layout or outside the stack.

Useful? React with 👍 / 👎.

Comment on lines +288 to +290
engineeringEvidence: root.showSelectedEvidence
? (root.modelProvider.treeModel.selectedNode.engineeringEvidence || ({}))
: ({})

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Enable evidence when selecting a direct DataSet attribute

When a DataSet member resolves directly to a q or t DataAttribute, the member-row click selects it but never changes showSelectedEvidence; that flag is set only by clicks on children of an expanded DataObject. Consequently this conditional supplies an empty map for direct Quality/Timestamp FCDA members, including those present in the repository fixtures. Set the flag for the direct-readable-member path too, or derive visibility from the selected node.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector

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 ✅ Completed 2026-10-14T13:28:00.862244Z 51badab Draft marked ready
ℹ️ 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.

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