Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 358136c406
ℹ️ 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".
| if ((selectDevice || ReferenceEquals(SelectedDevice, device)) && !_signalSelectionWizardOpen) | ||
| await OpenSignalSelectionWizardAsync(device, restoredCount); | ||
| // Live discovery and Open SCL are only different model-ingestion | ||
| // sources. Once the typed IED model exists, both must enter the same | ||
| // operator decision: exact DataSet Signals in deterministic static | ||
| // report-only mode, or the broader manual Signal Catalog in Hybrid | ||
| // mode. Opening the manual wizard directly here silently skipped the | ||
| // Static DataSet authority and left newly discovered IEDs on mixed | ||
| // static/dynamic reporting plus MMS polling fallback. | ||
| await OpenIedWorkspaceActionsAsync(device); |
There was a problem hiding this comment.
Serialize the post-discovery chooser
When two per-device discoveries are already running concurrently, the first completion enters this modal chooser without setting _signalSelectionWizardOpen; the second completion can therefore pass the same guard inside the first dialog's nested dispatcher loop and open another ShowDialog. This stacks the second IED's chooser over the first and changes SelectedDevice behind it, whereas the previous signal-selection path set the global guard before showing its window. Track the actions chooser with the same single-workflow guard, and cover concurrent discovery completions in a UI interaction regression test.
AGENTS.md reference: AGENTS.md:L180-L180
Useful? React with 👍 / 👎.
INVALIDATED — DO NOT MERGE
Physical validation on the exact PR head exposed a runtime regression. This proposal is closed and must not be used as a release or merge authority.
Observed on app commit
358136c40671b5aaa5ca3e1ee8cb599217540b04with engine648124097621046f5f127ceb1cf853fea54db730:The next repair must be based on the exact previously field-proven build/artifact and its source lineage, verified by binary hash and captured physical evidence—not this branch.