You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
P5: Canonical IED workspace and IEDScout-style workflow convergence #111
Open SCL and Discover IED are two ingress paths into one persistent IED engineering context. Browser/services consume that context instead of treating SCL and live discovery as separate products.
P5A — Canonical IED Context
create one persistent application-level engineering context
accept single-IED Open SCL and Live MMS Discovery as authoritative ingress
preserve context across runtime disconnect
distinguish structural authority from online runtime state
expose provenance, selected IED identity, endpoint, structural fingerprint and service inventories
provide deterministic multi-IED SCL selection boundary rather than silently choosing an IED
no protocol runtime rewrite and no major GUI redesign in P5A
Later P5 phases will use the same authority for File workflow, Browser offline/online lifecycle, Save SCL round-trip and contextual command UX.
P5B and later work must descend from exact P5A merge SHA / baseline above.
P5A established one persistent canonical engineering context for Open SCL and Live Discovery, explicit multi-IED selection, structural fingerprint/provenance, and runtime state independent from structural model lifetime.
File/Open SCL enters the same IED Browser context, not a separate product path.
Browser can open SCL directly and browse the canonical Data Model while offline.
Open SCL path uses SCL endpoint/address context when available and connects through the existing trusted-SCL MMS path.
Discover IED explicitly bypasses trusted SCL, performs live MMS discovery, and publishes the discovered structure into the same canonical Browser context.
Browser Data Model renders IedEngineeringContextController.treeModel, not session-owned client.treeModel.
Read/Write/Refresh stay on the proven MMS runtime but bridge values back into the canonical tree.
Disconnect clears runtime association only; canonical engineering navigation stays present.
multi-IED SCL selection is actionable in Browser before connection.
no Report/Control/File/SettingGroup protocol rewrite in P5B.
Save SCL from a Live Discovery canonical context is a local projection; it performs no rediscovery and does not require the MMS association to remain online.
Live MmsLiveModelDocument projects deterministically into one SclDocument authority used by the existing typed SclExporter.
projected LD/LN/DO/DA, ordered DataSets, Reports and supported GOOSE/SV/SG semantics round-trip through parser/export without a second semantic tree.
discovered IED identity and MMS endpoint are preserved in exported Communication/ConnectedAP when known.
synthetic type identities are deterministic; unknown/unrepresentable semantic leaves fail closed instead of inventing types.
Browser exposes Save SCL for the current canonical IED context, including after Disconnect.
Open-SCL exact-source Save As remains unchanged; P5C does not weaken vendor-lossless source preservation.
no MMS wire/runtime behavior rewrite.
QA must prove discovery-context export -> re-open -> structural equivalence and export-after-disconnect.
Browser is one engineering workbench for the active IedEngineeringContext, not a set of visually equal feature pages.
left explorer has one explicit IED root; GOOSE, Reports, Setting Groups, Files, DataSets and Data Model are children of that active IED identity.
lifecycle commands (Open SCL / Save SCL / Online or Discover / Disconnect) remain distinct from contextual engineering commands.
contextual command surface changes with selection/section and fails closed when offline or capability is unavailable.
Data Model selection continues to use the canonical context.treeModel; Read/Write operations continue through the already validated MMS runtime bridge.
Browser adds a bounded collapsible status/history console for context/runtime/service transitions and errors; no protocol polling loop is introduced.
offline SCL browsing remains fully usable; going Online overlays runtime state without rebuilding the engineering navigation.
Reports/DataSets/Files/Setting Groups/GOOSE keep their existing controllers in P5E; service-authority consolidation remains P5F.
no MMS/report/control/file/SGCB/GOOSE wire-runtime rewrite.
QA must guard IED-root navigation, contextual command gating, offline/online lifecycle wording, and bounded Browser status history.
Reports, DataSets, Files, Setting Groups and configured GOOSE views consume the active IedEngineeringContext as engineering identity/model authority.
service controllers may keep their proven internal MMS associations, but endpoint/IED identity/model selection must be adopted from the Browser session/context rather than recreated independently.
opening a Browser service must not rediscover the IED or create a second structural model.
Reports/DataSets must preserve canonical DataSet/RCB identity and static membership from the active engineering context while runtime enable/GI remains on the existing report controller.
Files/Setting Groups must use the same Browser endpoint/IED lifecycle and fail closed while offline; no hidden auto-connect.
Reports, DataSets, Files, Setting Groups and configured GOOSE now reuse the active canonical IedEngineeringContext as engineering identity/model authority.
Browser coordinator propagates one endpoint/context authority into Client, Reports and Utilities.
Browser Reports no longer performs a second full IED discovery; it seeds inventory from the canonical model and performs targeted bounded RCB state reads over the proven report association.
indexed SCL ReportControl definitions expand deterministically to concrete RCB instances with a fail-closed 1024-instance bound.
DataSet static membership remains canonical/context-derived; report enable/GI runtime remains on the existing MmsReportController with polling fallback still disabled for static reporting.
Browser Setting Groups reuse canonical SGCB inventory and perform bounded exact SGCB reads; Files reuse the same Browser utility association and endpoint lifecycle.
GOOSE Browser view consumes context.gooseStreams directly; the previous duplicate SclWorkspace GOOSE authority is removed from Browser navigation.
Disconnect releases report/utility MMS associations while preserving canonical service inventory for offline navigation.
standalone Reports/Utilities keep their previous discovery fallback only when no Browser engineering context is supplied.
no MMS/report/control/file/SGCB/GOOSE wire-runtime rewrite was introduced.
P5F status: CLOSED / VALIDATED.
Any later UX/service work must descend from baseline/ux-p5f-validated unless a later validated baseline explicitly supersedes it.
Activity
masarray commentedon Sep 20, 2026
P5A closeout — CLOSED / VALIDATED
3561ffe89761c932d7db82c27037a5013368ac76main:5b3ea19fa6542069fd224e14701c0ffb24ae5edabaseline/ux-p5a-validatedP5B and later work must descend from exact P5A merge SHA / baseline above.
P5A established one persistent canonical engineering context for Open SCL and Live Discovery, explicit multi-IED selection, structural fingerprint/provenance, and runtime state independent from structural model lifetime.
masarray commentedon Sep 20, 2026
P5B — Unified Browser lifecycle (STARTED)
Baseline:
baseline/ux-p5a-validated/5b3ea19fa6542069fd224e14701c0ffb24ae5eda.Acceptance contract:
IedEngineeringContextController.treeModel, not session-ownedclient.treeModel.masarray commentedon Sep 20, 2026
P5B closeout — CLOSED / VALIDATED
6251d129d098288f384fbfcf71744c241d6ae1e6main:e455608bef1cca4c35d3a04bde51f4f295c4c9abbaseline/ux-p5b-validatedP5B delivered the unified Browser lifecycle:
IedEngineeringContextController.treeModel.P5C and later work must descend from exact P5B merge SHA
e455608bef1cca4c35d3a04bde51f4f295c4c9aborbaseline/ux-p5b-validated.masarray commentedon Sep 20, 2026
P5C — Discovery -> canonical Save SCL round-trip (STARTED)
Baseline:
baseline/ux-p5b-validated/e455608bef1cca4c35d3a04bde51f4f295c4c9ab.Acceptance contract:
MmsLiveModelDocumentprojects deterministically into oneSclDocumentauthority used by the existing typedSclExporter.masarray commentedon Sep 21, 2026
P5C closeout — CLOSED / VALIDATED
e0fffd713af6ccdc43bfc4954b63fab7776800f9main:4b2dc4abd5b665271401b55fd53c1943f00a24e5baseline/ux-p5c-validatedP5C delivered Discovery -> canonical Save SCL round-trip:
MmsLiveModelDocumentprojects deterministically into one typedSclDocumentand reuses the existingSclExporter.ied_discovery_scl_export_qaproves export -> re-open -> canonical Browser context plus endpoint, DataSet order, Report/GOOSE/SettingGroup and fail-closed behavior.P5C status: CLOSED / VALIDATED.
Any P5D/later work must descend from exact P5C merge SHA
4b2dc4abd5b665271401b55fd53c1943f00a24e5orbaseline/ux-p5c-validated.masarray commentedon Sep 21, 2026
P5D — File/Home workflow IEDScout style (STARTED)
Baseline:
baseline/ux-p5c-validated/4b2dc4abd5b665271401b55fd53c1943f00a24e5.Acceptance contract:
Open SCL,Discover IED,Simulate IED,Sniffer, andConfiguration.Open SCLenters the existing unified Browser lifecycle and keeps offline canonical browsing / Online behavior from P5B.Discover IEDprompts for endpoint, explicitly starts Live Discovery, and enters the same Browser context.IED name + endpoint) rather than bare TCP endpoint when identity is known.masarray commentedon Sep 21, 2026
P5D closeout — CLOSED / VALIDATED
P5D File workflow IEDScout style is now formally closed and locked.
b2c546fd64b8f39561066c79cf31fae4f2a274932694bd467b11f1aab577f5268c8cedfced4bc05dbaseline/ux-p5d-validated→2694bd467b11f1aab577f5268c8cedfced4bc05dValidated product behavior:
Next P5 work must branch from
baseline/ux-p5d-validatedunless a later validated baseline explicitly supersedes it.masarray commentedon Sep 21, 2026
P5E — Browser convergence (STARTED)
Baseline:
baseline/ux-p5d-validated/2694bd467b11f1aab577f5268c8cedfced4bc05d.Acceptance contract:
IedEngineeringContext, not a set of visually equal feature pages.context.treeModel; Read/Write operations continue through the already validated MMS runtime bridge.masarray commentedon Sep 21, 2026
P5E closeout — CLOSED / VALIDATED
d0f6e9eb400f54602e41ea2d44a401eeffb5a920main:22b27b7bcca663f3103a3007947ba99188ae471ebaseline/ux-p5e-validated->22b27b7bcca663f3103a3007947ba99188ae471eValidated product behavior:
context.treeModel; proven MMS Read/Write bridge remains unchanged.P5F and later work must descend from
baseline/ux-p5e-validatedunless a later validated baseline explicitly supersedes it.masarray commentedon Sep 21, 2026
P5F — service reuse (STARTED)
Baseline:
baseline/ux-p5e-validated/22b27b7bcca663f3103a3007947ba99188ae471e.Acceptance contract:
IedEngineeringContextas engineering identity/model authority.masarray commentedon Sep 21, 2026
P5F closeout — CLOSED / VALIDATED
761d91e7efe058341292abf0ff1cc12bdecacacamain:3fdc1ef53d2025902ca54250749aa9f15edb1b42baseline/ux-p5f-validated->3fdc1ef53d2025902ca54250749aa9f15edb1b42Validated product behavior:
IedEngineeringContextas engineering identity/model authority.MmsReportControllerwith polling fallback still disabled for static reporting.context.gooseStreamsdirectly; the previous duplicateSclWorkspaceGOOSE authority is removed from Browser navigation.P5F status: CLOSED / VALIDATED.
Any later UX/service work must descend from
baseline/ux-p5f-validatedunless a later validated baseline explicitly supersedes it.