Repository navigation
P6E: independent multi-IED engineering workspaces - #123
Conversation
There was a problem hiding this comment.
💡 Codex Review
arstack61850/apps/ied_simulator/qml/Main.qml
Line 471 in ca51539
When any workspace has an active report, MmsReportController emits reportsChanged after every 100 ms poll, including polls with no new report; BrowserGlobalDataPane.syncRows() then emits watchedDataChanged, so this unconditional handler clears and re-appends as many as 2,048 aggregate rows on the GUI thread for every active slot, even while the All IEDs pane is hidden. With several reporting IEDs this repeated allocation-heavy rebuild can dominate UI processing; gate it on aggregate-view visibility and coalesce or update only changed rows.
AGENTS.md reference: AGENTS.md:L88-L92
When several IEDs are opened from a large multi-IED SCD, this call deep-copies the complete SclDocument into the new context via publishSclDocument; the subsequent adoptSourceFrom also copies the complete document into that slot's workspace controller. At the eight-slot limit this retains roughly two full parsed-document copies per workspace in addition to each selected IED model, so memory grows with the entire source file rather than the selected IEDs; share immutable parsed source evidence between slots and keep only per-IED canonical projections independent.
AGENTS.md reference: AGENTS.md:L146-L150
ℹ️ 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".
Implements P6E from #118 from exact
baseline/ux-p6d-validated(13abb65d845d297fe8811d0f99c490ad275cd4c8).Draft pending full exact-head Qt/C++/release/behavioral regression evidence.