Invariants / CN-PROTO-07
CN-PROTO-07
CN derived enforcedReceive-side agency closure: the receive bridge consumes only peer-originated ForkChoiceSignal and BatchDeliveryEvent values valid for the client-role N2N receive surface. Constructing or admitting locally-originated / client-output events into the receive reducer is unrepresentable in the public API.
- Source
docs/planning/receive-side-bridge-invariants.md §1 (closure)
- Cluster
- PHASE4-N-H
- Authority surface
- receive-side mini-protocol event surface
Enforcement trace
Tests 3
- receive_event_round_trips_through_pattern_match
- receive_effect_round_trips_through_pattern_match
- receive_error_round_trips_through_pattern_match
Cross-references
Evidence
ReceiveEvent enum has exactly 3 variants — all peer-originated. The exhaustive-match round-trip test will fail to compile if a fourth variant is added without explicit closure review.
ci_check_admitted_block_closure.sh forbids any locally-originated chain-sync/block-fetch variant name (RequestNext, RequestRange, ClientDone, FindIntersect) in events.rs production code.