Skip to content

G2.7 bound native Dynamic RCB groups to proven G2.3 envelope - #110

Merged
masarray merged 2 commits into
mainfrom
g2.7-p17-envelope-bounded-runtime
Sep 3, 2026
Merged

G2.7 bound native Dynamic RCB groups to proven G2.3 envelope#110
masarray merged 2 commits into
mainfrom
g2.7-p17-envelope-bounded-runtime

Conversation

@masarray

@masarray masarray commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Goal

Keep P1.7 general member-capability semantics while preventing runtime Dynamic DataSets from exceeding the physically proven G2.3 member-count envelope.

Change

Adds MmsGuardedDynamicReportNativeFieldCapabilityEnvelopeBoundRuntimePlanner, a narrow wrapper around the existing stable P1.7 planner.

For an authorized native per-IED DataChange + cleanup witness:

  • arbitrary fresh exact-resolved residual members remain eligible;
  • each individual Dynamic DataSet is capped to Profile.ProvenSafeMemberCount;
  • deterministic AR_HYB_<hash> identity, fresh RCB availability, static precedence, polling fallback, and ProductionEligible separation remain unchanged.

This matters for field evidence where smaller G2.3 milestones survive but a larger NamedVariableList destabilizes the MMS association. A later runtime must not recreate a DataSet larger than the proven safe envelope.

Regression

The new test requests 5 residual signals with a 2-member proven envelope while generic planner options allow 64 members. Expected runtime result is 3 Dynamic URCB groups (2,2,1) and zero polling residual, never one oversized 5-member DataSet.

@masarray
masarray merged commit 9b60458 into main Sep 3, 2026
1 check passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f9b7649e97

ℹ️ 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".

Comment on lines +36 to +38
var boundedMembers = provenEnvelopeMembers > 1
? Math.Min(options.MaxDynamicMembersPerReport, provenEnvelopeMembers)
: options.MaxDynamicMembersPerReport;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Reject invalid envelopes instead of disabling the bound

When an application supplies a deserialized or manually constructed InformationReportProven profile whose envelope has ProvenMemberCount == 1, the native capability validator can still accept its one-member activation/report evidence, but this branch restores the caller's potentially much larger limit. The supposedly envelope-bound planner can then emit an oversized dynamic DataSet and perform the association-destabilizing write this wrapper is meant to prevent; reject the inconsistent profile or apply every positive bound rather than falling back to the configured maximum.

Useful? React with 👍 / 👎.

/// AR_HYB identity, ProductionEligible state, or polling fallback. Those remain owned by the
/// existing stable P1.7 planner and its downstream hybrid planner.
/// </summary>
public static class MmsGuardedDynamicReportNativeFieldCapabilityEnvelopeBoundRuntimePlanner

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Record the completed runtime capability in project documentation

This adds a public protocol runtime and unit-tested G2.7 behavior without updating either the engine maturity matrix or changelog, leaving the documented reporting capability and its evidence boundary stale. Record the implemented/unit-tested scope and what remains unvalidated as required for meaningful completed patches.

AGENTS.md reference: AGENTS.md:L119-L123

Useful? React with 👍 / 👎.

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