Skip to content

Harden Dynamic DataSet and RCB ownership safety - #46

Merged
masarray merged 6 commits into
mainfrom
agent/dynamic-reporting-safety-hardening
Aug 11, 2026
Merged

masarray merged 6 commits into
mainfrom
agent/dynamic-reporting-safety-hardening

Conversation

@masarray

Copy link
Copy Markdown
Owner

Scope

Close the three live Dynamic Reporting safety findings that remained on current main after #31/#32:

  1. P1 association-scoped Dynamic DataSet ownership — ownership evidence is invalidated on disconnect/reconnect, endpoint change, association fault/cancel/timeout, or bounded event-history shift. owned_only deletion therefore cannot carry stale ownership into a later MMS association.
  2. P2 negotiated MMS PDU gate — DefineNamedVariableList and DeleteNamedVariableList are rejected locally when the encoded MMS PDU exceeds the negotiated association maximum, before network transmission.
  3. P1 mutation-owned RCB cleanup — the armed Dynamic RCB harness no longer emits unconditional RptEna=false, Resv=false, or DatSet="" writes. RptEna/Resv cleanup remains owned by MmsReportSubscriptionRuntime; failure-path DatSet unbind is permitted only when the subscription event record proves this run successfully wrote DatSet, and DataSet deletion is withheld if RCB cleanup remains pending.

Regression coverage

  • same-endpoint disconnect/reconnect invalidates Dynamic DataSet ownership and blocks default deletion without sending a request;
  • oversized Define request is rejected before any request bytes are sent;
  • focused Dynamic RCB cleanup test proves no DatSet cleanup authorization exists without a successful attribute_written event.

Lineage

Based directly on current main at a92c42a, which already contains merged Smart Control #43, static reporting, Dynamic reporting, and MMS file transfer. This PR does not re-merge or retarget the historical control stack.

@masarray
masarray marked this pull request as ready for review August 11, 2026 00:11
@masarray
masarray merged commit 9d42f1c into main Aug 11, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant