Skip to content

M2K: ARSAS-style native All-IED live grid with Quality/IED Time and canonical read state - #176

Merged
masarray merged 5 commits into
mainfrom
feat/workbench-arsas-live-grid-ssot-m2k
Oct 15, 2026
Merged

masarray merged 5 commits into
mainfrom
feat/workbench-arsas-live-grid-ssot-m2k

Conversation

@masarray

Copy link
Copy Markdown
Owner

Baseline

a328da13133a6473dc6a28a69f5d2aebab7a7198; post-merge M2J native Qt, SCL portable+Workbench, and Release Hardening succeeded.

Cross-repo design source (studied, not duplicated)

ARSAS masarray/arsas MainWindow.xaml Explorer (live signal grid / search / Quality / IED Timestamp / acquisition), MainWindow.ExplorerSignalGrid.cs, and MainWindow.SharedStaticDataSetAuthority.cs. ARSAS uses WPF/.NET; ARStack stays native Qt/QML with its existing MMS tree, independent per-IED watchlists, and exact-source associations. No parallel WPF/.NET architecture.

Root causes fixed

  1. ARStack's combined All-IED Global Data silently moved Quality and IED Timestamp to tooltips although the authoritative watchlists already supplied both fields. Show them as first-class visible columns, along with IED, IEC reference, value and state.
  2. ARSAS-style global signal search absent. Add case-insensitive search by IED/ref/value/quality/time/state on a bounded presentation, without altering subscriptions or issuing MMS Reads.
  3. Per-IED Global Data previously labeled readable DA LIVE even if no MMS value had been received. Add one canonical hasReceivedValue bit on the existing indexed MMS DA node, set only on actual applyReadValue, including legitimate empty values. Present NOT READ until first real sample; keep OFFLINE and unresolved distinct.
  4. Replace repeated combined ListModel clears on live updates with stable role patching when row identity/order unchanged. Coalesce bursts through Qt.callLater; capped 2048 rendered rows / 256 chars per rendered preview.

Regression/acceptance

  • Native Browser convergence source contract for cross-IED search, visible Quality / Timestamp, no implicit Read/Timer, provenance.
  • Existing 60k-large-node C++ QA extended to prove no-sample != empty-but-received.
  • Exact-head Qt CI, SCL and any other required checks. Squash merge only with complete green and expected-head lease.

Preserved

M2A–M2J, static RCB report-only authority, one MMS decoder/tree/association per IED, explicit refresh (64 targets), no polling, no firmware or installer edits. Search is a view filter, not a semantic cache or acquisition mode.

…and honest read state (M2K)

Expose Quality and IED Timestamp columns and bounded cross-IED search, reuse per-IED canonical watchlists and event-driven incremental model updates. Differentiate readable vs actually sampled Data Attributes (including legitimate empty value samples) inside the existing MMS tree. Add SSOT/large-model/source contract gates.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 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 ✅ Completed 2026-10-15T03:39:36.843754Z 9e25398 PR opened
ℹ️ 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: 9e25398110

ℹ️ 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/test_browser_convergence.py
…ojection

Wire canonical watchlist value notifications through the same event-loop coalescing entrypoint used by search and fleet changes. Guard source contract against synchronous per-value full projection scans.

Copy link
Copy Markdown
Owner Author

Cross-thread engineering handoff — SSOT/ARSAS plan now on main

The repository now has a single canonical, actionable IED Browser strategy merged in documentation-only PR #177, main commit 61be86f6:

For the M2K integrator: this PR's source head remained 5c5e425c20acb1b849399f39bf62da0f68c0942b at latest inspection, and the exact-head native Qt and SCL-assisted Workbench jobs have both completed success. Re-query current head, remaining checks/review threads, and new main before merging; use an expected-head SHA lease and verify post-merge main. Docs-only PR #177 did not modify any M2K runtime/QML file.

Next division of labor: Track A owns canonical measurement provenance/CDC/typed q/t/unit/angle (M2L); Track B owns disjoint native QML selected-state UX and screenshots (M2M); Track C owns RCB/SG/File/GOOSE correctness (M2N–O); Track D owns QA/performance/artifacts on non-overlapping test files. No second semantic cache/decoder, automatic MMS polling, or WPF stack. Hz and TotW must not inherit phasor angle.

Please cite the strategy, main base SHA and file ownership when opening follow-up PRs, and update the current handoff after each accepted milestone.

@masarray
masarray merged commit 0cc8820 into main Oct 15, 2026
2 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