Skip to content

P0: Responsive Static DataSet reporting and green IED progress (SSOT preserved) - #724

Merged
masarray merged 3 commits into
integration/arsas-ssot-performance-p0-20261024from
fix/p0-static-report-ui-responsive-20261024
Oct 24, 2026
Merged

masarray merged 3 commits into
integration/arsas-ssot-performance-p0-20261024from
fix/p0-static-report-ui-responsive-20261024

Conversation

@masarray

Copy link
Copy Markdown
Owner

User field DIAG on 2026-10-24 app 55ee722 (3 IEDs). Baseline frozen at checkpoint/arsas-ssot-command-fatform-55ee722-20261024, independent of concurrent ARSAS threads. Root cause: selection authority repeatedly walked the large SG7 Signals catalog per FCDA and a large WPF-bound selection/FAT projection ran synchronously after Static DataSet click, freezing input without progress. Changes: exact DataSet-key indexed membership matching, cooperative Dispatcher.Background slices of 128 WPF-owned signal selections and FAT bridge updates, no Task.Run over observable bindings, stage timings emitted as P0_STATIC_UI_WORK, reused card's existing 3px progress line green during reporting setup, source-neutral from card/Open SCL/FAT append. No changes to MMS polling, command, RCB configuration, event timestamps or engine. New model/XAML regression tests. Progress measures setup workflow, not report ingress/continuity. CI and field FAT required before merging.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 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-24T01:59:53.506877Z e0c3bdd 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: e0c3bdd1b4

ℹ️ 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 +72 to +73
device.UpdateReportingProgress(4, "Preparing ARIEC Static DataSet members…");
await System.Windows.Threading.Dispatcher.Yield(System.Windows.Threading.DispatcherPriority.Background);

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 Guard the yielded setup against device removal

If the operator removes an IED while Static DataSet setup yields to the dispatcher, the setup can resume and reconnect/start monitoring that removed device. BeginReportingProgress does not set IsBusy, so the card's Remove button remains enabled and IedRemove_Click accepts the removal. Neither this method nor its caller in MainWindow.SclQuickActions.cs checks cancellation or Devices.Contains(device) before continuing into connection and monitor startup. Previously, selection completed synchronously before another input event could run. Give this workflow an explicit per-device lifetime/admission guard and abort it when removal ends ownership, so an invisible IED cannot retain an active MMS/report session.

AGENTS.md reference: AGENTS.md:L139-L141

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

2026-10-24 P0 responsive reporting review/checkpoint

Frozen operator FAT source: 55ee72205d77d138fcf8f49f82cc688313c21af7 preserved unchanged as checkpoint/arsas-ssot-command-fatform-55ee722-20261024. Patch head: fb4932d127807fa83bf3b1fb70058fbdfdb3c966.

Operator DIAG at 08:41 WIB: SG7 77/77 visible, 4/4 exact RCB ingress routed, 156/156 static membership represented, no cyclic MMS process polling, discovery 15,568.7ms (directory 5,202.7, types 3,681.7, model 1,511.6, projection 5,115.2); ZIV 8/8, 1/1, discovery 2,774.7ms; GR_X 13/13, 2/2, discovery 2,377.5ms. BRCB continuity not certified: SG7 13 findings/4 BufOvfl, ZIV 1 BufOvfl, GR_X 1 sequence finding; no confirmation of lost SOE purely from these observations. No SCL peer ingress captured.

Freeze/root code: ApplyStaticDataSetSelection old per-FCDA all-signal LINQ scans and synchronous WPF selection/FAT reconciliation after the task dialog closes, with no feedback. Exact literal DataSet ToLookup computed once; membership comparator still trim-normalized OrdinalIgnoreCase with duplicate preservation. WPF-owned selection and FAT bridge updates are Dispatcher.Background cooperative batches of 128 signal identities (snapshotted across yield), not background Task.Run and no SCL/RCB ownership changes. P0_STATIC_UI_WORK logs inventory, authority, selection, total wall times for field re-evaluation.

UX: reuse only original IED Explorer 3px progress line, Foreground #16A34A when report arming; phase-completion progress max99 before finish and never claims actual ingress/SOE proof. Single-flight mutating controls disabled for the same IED while responsive reporting workflow is in progress, Stop remains enabled and preempts continuation.

R7 green: workflow 40052798020, 2891/2891 application tests and 1272/1272 pinned ARIEC engine tests. Smart Discovery Mainline Readiness is intentionally blocked by R10 physical gate; do not bypass/merge mainline without operator acceptance. No engine changes.

FAT must still prove: no perceived WPF freeze during SG7 static selection, green progress visible and no grid repaint storms, event-driven 4/4 RCB routing and control feedback intact, P0_STATIC_UI_WORK timing improved.

masarray added a commit that referenced this pull request Oct 24, 2026
…ack onto newer SSOT V2 baseline without SMV changes

Preserve exact 10 field-proven Write/readback/test blobs from checkpoint 04350e1 and all other files from newer SSOT responsive-static PR #724 fb4932d. Trial ONLY, no upstream merge; do not repin native engine or revert SMV UI.

User accepted Write popup close and IED Browser leaf MM S Read/SSOT; freeze existing code. For integration qualification only.

Copy link
Copy Markdown
Owner Author

Cross-thread protection: Write operator FAT is accepted and frozen at checkpoint/arsas-write-damodel-field-accepted-20261024 SHA 04350e15...; do NOT merge older FAT PR #679 wholesale into SSOT V2 or revert your indexed/reactive viewport/large-grid/Static DataSet work. Prepared draft CI-only rehearsal PR #726, based directly on your stronger SSOT responsive-static head fb4932d..., with exactly 10 Write/readback files and ZERO MainWindow.xaml, MainWindow.xaml.cs, Views/SmvInlineViewer.*, LiveValues, change journal, PTP/SV/native engine changes. Never merge without your independent review and exact SSOT/SMV regression; user wants Write frozen and SMV/SSOT prioritized.

@masarray
masarray changed the base branch from checkpoint/arsas-ssot-command-fatform-55ee722-20261024 to integration/arsas-ssot-performance-p0-20261024 October 24, 2026 03:15
@masarray
masarray merged commit b1d1778 into integration/arsas-ssot-performance-p0-20261024 Oct 24, 2026
13 of 14 checks passed

Copy link
Copy Markdown
Owner Author

USER DIAG ACCEPTANCE / THREAD SCOPE CHECKPOINT — 2026-10-24 10:07 WIB

Scope status: PR #724 MERGED on 2026-10-24 03:16:55 UTC to integration/arsas-ssot-performance-p0-20261024 at immutable merge commit b1d177885ff8cba6515e19f0aec33d1fc887519b. PR head fb4932d127807fa83bf3b1fb70058fbdfdb3c966 code CI was 2891/2891 ARSAS + 1272/1272 pinned ARIEC engine tests. User-run DIAG app b136b927636219e03c9ce092311f673c46201645 is a GitHub merge-test executable, not literal PR head; engine f75e323e9f8443aa20e0a3818a1d5d77255b2c0f. The actual branch merge commit has the same file tree as PR #724 head (compare: 0 files). Do not misstate this as a mainline merge.

Operator evidence at 10:07 WIB:

  • 3/3 IED connected & monitoring; static reporting sources with zero cyclic process polling.
  • SG7 77/77 displayed, 0 pending, four/four exact static RCB streams routed; control catalog 13/13 selected verified-operable, four extra typed-operable BkrCSWI; 371 report frames and 18,788 process updates. SCADA/SSOT report companion slice: typedRawQ/T 72/72, qLedgerAccepted 72, processQ/TJoined 72/72. This does NOT establish every per-member SOE replay sequence.
  • ZIV 8/8 displayed, 1/1 RCB routed, BSC TapChg verified operable; four CSWI ctlModel 0 StatusOnly and disabled. GR_X 13/13, 2/2 RCB routed, 2 operable and 3 StatusOnly.
  • P0_STATIC_UI_WORK: SG7 inventory 2123.465ms; exact authority 680.303ms; selection 121.410ms; total 2941.283ms for 3688 rows. ZIV 123.584ms for 481; GR_X 145.115ms for 521. These are wall-clock workflow stage durations, not input responsiveness p95/p99 or proof of zero UI freezing.
  • Smart scan SG7 total 9835ms (32,902 MMS names), down from previously observed 15,568.7ms in a different run; not a controlled benchmark.
  • Outstanding: SG7 report continuity 21 findings (17 sequence discontinuities, 4 BufOvfl) across 371 frames; SCD/live peer parity pending; SG7 26 primary unresolved catalog descriptors (not 21 pending values). SOE replay/EntryID/wire-order and full q/t/source/association cross-view acceptance are NOT yet certified.

Cross-thread integration guard:

Thread-level deliverable may be handed off/archived after this checkpoint; global ARSAS final release and related unresolved issue closure are explicitly out of scope. PR #724 needs no manual close (already merged).

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