Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked follow-up to draft PR #145. Base is intentionally
fix/144-smart-interop-p0so this slice does not race or overwrite the parallel P0-P2/canonical-convergence work.Teamwork boundary
Why
A successful MMS write response is not enough to prove a report-control state transition. Planning evidence can also become stale between plan creation and the actual mutation.
The configured-static path already performed two whole-RCB reads after
RptEna=true, but startup returned success without making those readbacks authoritative.Changes
MmsConfiguredStaticActivationVerifier;RptEna=false;RptEna=true; no unconditional duplicate read;Safety intent
This is transactional/JIT evidence hardening only. It does not loosen dynamic mutation policy, does not change canonical planning, and does not claim InformationReport traffic proof yet. Actual traffic proof remains the next lifecycle/evidence layer.
Regression
Tests cover:
Performance contract
Typical configured-static activation no longer repeats the broad RCB diagnostic probe. The JIT path prefers one complete RCB structure read and falls back only to missing RptEna/DatSet/reservation/Owner leaves. It contains no fixed delay or polling sleep. Receiver registration still occurs before RptEna mutation, and actual InformationReport traffic remains asynchronous post-activation evidence rather than a prerequisite for enabling reporting.
Asynchronous traffic proof
Persistent report sessions now expose:
ArmedAwaitingTrafficimmediately after activation/readback is proven;TrafficProvenonly after a real InformationReport is decoded and routed to that exact monitor;FirstRoutedReportAt,LastRoutedReportAt, routed count and first-report latency.This does not wait for traffic before enabling reporting and does not tear down a healthy armed RCB merely because no spontaneous report has arrived yet. GI/initial-image policy can remain a separately bounded caller decision.
For normal multi-field activation, exact scalar type evidence is prewarmed from one complete RCB TypeSpecification when named components are available; otherwise the existing per-leaf exact preflight remains the safe fallback.
The combined #145/#146/#147 exact integration head was validated in CI-only PR #148; head
c0609d5c3f5711bff1a604aefc6f514f17fa502cpassed .NET CI #747 end-to-end.