G2.6 P1.5b: subset-scoped legacy dchg compatibility - #102
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fcfff990d5
ℹ️ 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".
| var dynamicIntent = options.AllowDynamicBrcb || options.AllowDynamicUrcb; | ||
|
|
||
| var authorized = dynamicIntent && | ||
| capability.MayAttemptDynamicReports && |
There was a problem hiding this comment.
Gate authorization on the proven RCB's capability
When another empty RCB satisfies the association capability evaluator but evidence.RcbReference lacks readable RptEna or TrgOps evidence, this association-wide boolean still authorizes the proven RCB. The subsequent restricted hybrid planner considers that RCB dynamically usable based only on empty/free state; checked MmsPersistentReportMonitor, which can define the DataSet and write DatSet before discovering that TrgOps is unavailable, while RunGuardedDynamicReportSessionAsync does not enforce it at all. Require the capability entry for the exact evidence RCB to be a dynamic-write candidate before emitting this plan.
AGENTS.md reference: AGENTS.md:L151-L156
Useful? React with 👍 / 👎.
| var plan = MmsHybridReportAcquisitionPlanner.Build( | ||
| catalog, | ||
| requestedSignals, |
There was a problem hiding this comment.
Preserve evidence order when building the dynamic plan
For valid physical evidence whose member order differs from lexical signal order—for example evidence [Z, A] with both signals requested—this call delegates to MmsHybridReportAcquisitionPlanner.PlanDynamicCoverage, which sorts resolved members by SignalKey and emits [A, Z]. ValidateDynamicSegments then correctly rejects that sequence and falls back to polling, so legitimate subset evidence can never enable dynamic reporting unless its DataSet order happens to match lexical catalog order. Reorder the resolved/requested inputs by evidence.MemberReferences before building the dynamic segment.
AGENTS.md reference: AGENTS.md:L140-L145
Useful? React with 👍 / 👎.
Goal
Close the remaining P1.5 field blocker without widening the evidence boundary.
The persisted legacy
InformationReportProvenchain is broader than the later physical A3 dchg proof. The persisted activation/report/envelope member sequence remains unchanged and authoritative as qualification evidence; the later NO-GI dchg proof must authorize only its exact ordered member subset.Change
Adds
MmsGuardedDynamicReportLegacySubsetCompatibilityPolicyandMmsGuardedDynamicReportLegacySubsetRuntimePlanner.The validator requires:
InformationReportProvenor stronger state;GeneralInterrogation;The runtime planner then restricts dynamic planning to only that physical dchg subset, at most one dynamic RCB group, while static reporting retains precedence and all unproven members remain polling.
Important non-change
Regression coverage
Adds a representative broader stored chain (4 members) with a later 2-member physical dchg subset and verifies: