Resolve all 46 low-severity architecture review findings

This commit is contained in:
Joseph Doherty
2026-09-09 22:56:36 -04:00
parent fef3e7675f
commit 9ee402bbcd
139 changed files with 2621 additions and 1082 deletions
@@ -12,13 +12,10 @@ namespace ZB.MOM.WW.ScadaBridge.Commons.Messages.Streaming;
/// <param name="Quality">Quality of the new value (<c>Good</c>/<c>Bad</c>/<c>Uncertain</c>).</param>
/// <param name="Timestamp">UTC timestamp of the change.</param>
/// <param name="SourceExecutionId">
/// Audit Log #23 (ParentExecutionId tag-cascade): the <c>ExecutionId</c> of the
/// script execution / inbound API request whose write produced this change, or
/// <c>null</c> when the change did not originate from an audited execution —
/// which is the case for every value that arrives from the Data Connection
/// Layer (external device data), for deployment-time seeding, and for the
/// confirmed value of a data-sourced write (the device echo arrives on the
/// subscription long after the writing execution ended).
/// Execution associated with this change. Static writes carry an observed writer id;
/// armed device updates carry only a candidate writer id (see
/// <paramref name="SourceExecutionInferred"/>), since subscriptions carry no write-request id.
/// Other device updates and deployment seeding carry no id.
///
/// <para>
/// The Alarm Actor records this id as the <c>ParentExecutionId</c> of the
@@ -34,6 +31,7 @@ namespace ZB.MOM.WW.ScadaBridge.Commons.Messages.Streaming;
/// </para>
/// </param>
/// <param name="Trace">Flow Debugger trace flag — see design 2026-09-05 §5.2. Additive; defaults to untraced.</param>
/// <param name="SourceExecutionInferred">True when the source is inferred from the first device update within the trace-arm window, regardless of value equality, clamping, or coercion; it is not evidence of a write echo.</param>
public record AttributeValueChanged(
string InstanceUniqueName,
string AttributePath,
@@ -42,4 +40,5 @@ public record AttributeValueChanged(
string Quality,
DateTimeOffset Timestamp,
Guid? SourceExecutionId = null,
bool Trace = false) : ISiteStreamEvent;
bool Trace = false,
bool SourceExecutionInferred = false) : ISiteStreamEvent;