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
Browser derives the target control-object root from the active canonical Data Model selection; no separate structural discovery/navigation authority.
A dedicated Browser control association may be used for runtime isolation, but endpoint/context ownership remains IedBrowserSessionController + IedEngineeringContext.
Runtime execution MUST reuse ControlDescriptorDiscovery + ControlObjectSession; no GUI-local MMS Control encoder/state machine.
support all discovered command-ready ctlModels: direct-normal, SBO-normal, direct-enhanced, SBO-enhanced.
expose explicit Select, Operate, Select+Operate and Cancel only when valid for the discovered model.
typed value parsing supports the existing proven ControlValue families (SPC/DPC/int/uint/float/step) and fails closed for unsupported/vendor-specific values.
origin, test, interlock-check and synchro-check are operator-visible; origin identifier is bounded.
no automatic retry.
enhanced security completion surfaces correlated positive/negative CommandTermination / LastApplError; MMS Write acceptance alone is not shown as final success.
explicit confirmation is required before a control action that can write to the IED.
Disconnect tears down any control selection/association and retains the canonical Browser model.
QA must prove lifecycle ownership, fail-closed selection detection, action gating, explicit confirmation and reuse of proven control runtime.
report configuration writes reuse MmsReportSubscriptionRuntime and its read-back verification;
static report path remains MmsStaticReportSessionRuntime with write_data_set_reference=false and allow_polling_fallback=false;
dynamic authoring must never silently mutate an RCB: RCB writes happen only on explicit Enable / Enable+GI;
RCB must be disabled/available according to the proven runtime before configuration; no automatic retry;
dynamic DataSet cleanup is explicit and cannot delete static/non-owned DataSets;
Disconnect releases report runtime and dynamic ownership scope with the association; canonical engineering context remains;
permanent CI gates must prove static immutability, dynamic ownership, 64-member bound, canonical member sourcing, runtime reuse, and no wire encoder fork.
P6D acceptance contract — Real Passive MMS Sniffer (pre-implementation audit)
Start a code branch only from baseline/ux-p6c-validated after PR #121 exact-head and post-merge gates complete.
Ownership: Sniffer is passive, standalone, and never establishes an MMS association or emits client requests. Simulator GOOSE publication, Browser MMS client/control/report associations, and canonical IED engineering context are unchanged.
Capture and decode: explicit NIC selection with Start/Stop; PCAP offline fixture/import path; separate MMS/TCP port-102 capture transport (existing GOOSE transport is EtherType-filtered and cannot stand in for TCP capture). Bounded Ethernet/VLAN + IPv4/TCP parsing; per-direction sequence-aware reassembly and TPKT coalescing/splitting; COTP DT/EOT, Session/Presentation/ACSE decoding through existing core; MmsPduCodec classifies request/response/error/unconfirmed InformationReport. Show endpoint/direction, service, invoke ID, time, decode status, and report/control attribution only when established by decoded evidence.
Guardrails: capped flows, per-flow bytes, retained packets/events, and CPU work per capture cycle; malformed/truncated/IP fragments/unsupported link types fail explicitly, never guessed. Preserve PCAP export and non-MMS GOOSE behavior. No raw hex input treated as proof of decoded MMS.
QA: deterministic synthetic PCAP covers split/coalesced TPKT, duplicated/retransmitted/OOO/gap TCP, COTP EOT, MMS Read/Write/Report/Control classifications, malformed BER, no client association, and bounded memory. Linux+Windows build and release gates must remain green; no live-device parity claim without live evidence.
Implementation may be staged internally, but do not label P6D complete until real passive capture, decode, UI filtering, and deterministic regression evidence all exist.
Scope: passive IPv4 TCP/102, bounded TCP/TPKT/COTP/Session/MMS reassembly, request/response invoke correlation, InformationReport classification, classic Ethernet PCAP import, and GOOSE/MMS Sniffer tabs. Linux AF_PACKET and Windows dynamically loaded Npcap capture; no client association or packet injection.
Explicit limitations: IPv6, fragmented IPv4 defragmentation, arbitrary PCAPNG, and exhaustive semantic decoding are not claimed. Real physical IED traffic remains a separate live-site acceptance test.
P6E must descend from this exact baseline; do not regress P6A–P6D or static dataset-only reporting.
This closes the implementation + CI/simulator milestone, not physical-device/field acceptance. That follow-up is tracked separately in #124. Do not claim full IEDScout field parity, exhaustive passive MMS decode, or authorized control/report success on physical IEDs without field evidence.
Activity
masarray commentedon Sep 21, 2026
P6A — Browser Global Data / Activity Monitor (STARTED)
baseline/ux-p5f-validated/3fdc1ef53d2025902ca54250749aa9f15edb1b42ux/p6a-browser-global-dataIedEngineeringContext; it does not own a second model.MmsReportController; configured GOOSE remains model-only.masarray commentedon Sep 21, 2026
P6B acceptance contract — Browser IEC 61850 Control UX
P6B starts only after P6A is merged and locked as a validated baseline.
Authority / ownership
IedEngineeringContext; no full structural rediscovery.ControlDescriptorDiscovery.MmsAssociationControlTransport+ControlObjectSession; no GUI-local MMS control encoder/state machine.UX / safety
Regression boundaries
masarray commentedon Sep 21, 2026
P6A closeout — CLOSED / VALIDATED
e1abdfec93888b4affb74bec492e32d2fdf11c9amain:b6c76f9fd641740182208108ada0050180a9a46cbaseline/ux-p6a-validated->b6c76f9fd641740182208108ada0050180a9a46cValidated behavior:
Global Datawatch surface.IedEngineeringContext.treeModel; no second engineering model.P6A status: CLOSED / VALIDATED.
P6B must descend from
baseline/ux-p6a-validated.masarray commentedon Sep 21, 2026
P6B — Browser IEC 61850 Control UX (STARTED)
baseline/ux-p6a-validated/b6c76f9fd641740182208108ada0050180a9a46cux/p6b-browser-controlAcceptance contract:
IedBrowserSessionController+IedEngineeringContext.ControlDescriptorDiscovery+ControlObjectSession; no GUI-local MMS Control encoder/state machine.masarray commentedon Sep 21, 2026
P6B implementation candidate ready — certification pending
6f8a5c71cd24728071a76f578ac6b5245ed2cc7cbaseline/ux-p6a-validated/b6c76f9fd641740182208108ada0050180a9a46cCandidate behavior:
ControlDescriptorDiscovery,MmsAssociationControlTransport, andControlObjectSession;Do not merge or create a P6B baseline until the exact candidate head is green.
masarray commentedon Sep 21, 2026
P6B closeout — CLOSED / VALIDATED
e6a84965addd2a7816bad04ca834c0e69c6b22c2main:88e7af4d07c19efb4496e9b4ae71977c2554c571baseline/ux-p6b-validated->88e7af4d07c19efb4496e9b4ae71977c2554c571P6B status: CLOSED / VALIDATED.
P6C must descend from this exact baseline.
masarray commentedon Sep 21, 2026
P6C — Dynamic DataSet + Advanced Report Authoring (STARTED)
baseline/ux-p6b-validated/88e7af4d07c19efb4496e9b4ae71977c2554c571ux/p6c-dynamic-dataset-report-authoringAcceptance contract:
MmsDynamicDataSetRuntime; no GUI-local Define/DeleteNamedVariableList encoder;MmsReportSubscriptionRuntimeand its read-back verification;MmsStaticReportSessionRuntimewithwrite_data_set_reference=falseandallow_polling_fallback=false;masarray commentedon Sep 23, 2026
P6D acceptance contract — Real Passive MMS Sniffer (pre-implementation audit)
Start a code branch only from
baseline/ux-p6c-validatedafter PR #121 exact-head and post-merge gates complete.Ownership: Sniffer is passive, standalone, and never establishes an MMS association or emits client requests. Simulator GOOSE publication, Browser MMS client/control/report associations, and canonical IED engineering context are unchanged.
Capture and decode: explicit NIC selection with Start/Stop; PCAP offline fixture/import path; separate MMS/TCP port-102 capture transport (existing GOOSE transport is EtherType-filtered and cannot stand in for TCP capture). Bounded Ethernet/VLAN + IPv4/TCP parsing; per-direction sequence-aware reassembly and TPKT coalescing/splitting; COTP DT/EOT, Session/Presentation/ACSE decoding through existing core;
MmsPduCodecclassifies request/response/error/unconfirmed InformationReport. Show endpoint/direction, service, invoke ID, time, decode status, and report/control attribution only when established by decoded evidence.Guardrails: capped flows, per-flow bytes, retained packets/events, and CPU work per capture cycle; malformed/truncated/IP fragments/unsupported link types fail explicitly, never guessed. Preserve PCAP export and non-MMS GOOSE behavior. No raw hex input treated as proof of decoded MMS.
QA: deterministic synthetic PCAP covers split/coalesced TPKT, duplicated/retransmitted/OOO/gap TCP, COTP EOT, MMS Read/Write/Report/Control classifications, malformed BER, no client association, and bounded memory. Linux+Windows build and release gates must remain green; no live-device parity claim without live evidence.
Implementation may be staged internally, but do not label P6D complete until real passive capture, decode, UI filtering, and deterministic regression evidence all exist.
masarray commentedon Sep 23, 2026
P6C merge / P6D acceptance checkpoint
P6C PR #121 exact head
b69b8135e1b76bc3cda7f72cadb8d36abc14ca0dpassed 10/10 exact-head workflows, merged as6e091411e0e9e9633364d15c62a41347bcc6b666; head->merge diff 0 files. Post-merge gates remain in progress; baseline creation waits for all green.P6D Real Passive MMS Sniffer contract:
masarray commentedon Sep 23, 2026
P6C CLOSED / VALIDATED
PR #121 exact head
b69b8135e1b76bc3cda7f72cadb8d36abc14ca0d: 10/10 exact-head workflows SUCCESS. Merge6e091411e0e9e9633364d15c62a41347bcc6b666; head→merge 0 changed files; post-merge 10/10 SUCCESS. Immutable baselinebaseline/ux-p6c-validatedpoints to exact merge SHA. P6D descends from this baseline.masarray commentedon Sep 23, 2026
P6D closeout — CLOSED / VALIDATED
7c8ff874164ae42962339e57fe6fd892cf129b1e— exact-head workflows 11/11 SUCCESS.13abb65d845d297fe8811d0f99c490ad275cd4c8— head→merge 0 changed files.baseline/ux-p6d-validated->13abb65d845d297fe8811d0f99c490ad275cd4c8.Scope: passive IPv4 TCP/102, bounded TCP/TPKT/COTP/Session/MMS reassembly, request/response invoke correlation, InformationReport classification, classic Ethernet PCAP import, and GOOSE/MMS Sniffer tabs. Linux AF_PACKET and Windows dynamically loaded Npcap capture; no client association or packet injection.
Explicit limitations: IPv6, fragmented IPv4 defragmentation, arbitrary PCAPNG, and exhaustive semantic decoding are not claimed. Real physical IED traffic remains a separate live-site acceptance test.
P6E must descend from this exact baseline; do not regress P6A–P6D or static dataset-only reporting.
masarray commentedon Sep 26, 2026
P6 closeout — A–E CLOSED / CI-VALIDATED
baseline/ux-p6a-validatedbaseline/ux-p6b-validatedbaseline/ux-p6c-validated->6e091411e0e9e9633364d15c62a41347bcc6b666baseline/ux-p6d-validated->13abb65d845d297fe8811d0f99c490ad275cd4c8baseline/ux-p6e-validated->de8ba6e32f1e21effffc967f9f04b82d457f8451P6E exact-head
ca51539199feefbf12bfe4c79b876af88e904c6d: 9/9 PR workflows SUCCESS and 2/2 push workflows SUCCESS. Mergede8ba6e32f1e21effffc967f9f04b82d457f8451; head->merge 0 changed files; 11/11 post-merge workflows SUCCESS. Behavioral QA proves isolated slot controllers/context, SCL fork and endpoint provenance, bounded 8 slots, invalid-index/capacity guard, tab switching and offline-only close. Existing static report-only and passive Sniffer boundaries remain.This closes the implementation + CI/simulator milestone, not physical-device/field acceptance. That follow-up is tracked separately in #124. Do not claim full IEDScout field parity, exhaustive passive MMS decode, or authorized control/report success on physical IEDs without field evidence.