feat: add managed antenna descriptor admission - #3152
Conversation
|
Agent Review: BLOCKED Exact head reviewed:
The descriptor policy itself is otherwise coherent: exact Ant1/Ant2 operations resolve to REQUIRED STACK ORDER / DO NOT MERGE ALONE: even after the code findings are fixed, this descriptor-registration commit must land atomically with the MOR-2308 consumer wiring that injects the same Evidence observed: focused RED run |
|
Agent Review: BLOCKED 6f26e61 P1 — selector intent stores a callable instead of the stable descriptor name. At src/rigplane/core/command_dispatch.py:515, name=descriptor.method_name assigns _rx_antenna_method itself to CommandIntent.name for set_rx_antenna. execute_command_intent and ManagedTxAuthority admission then cannot resolve the descriptor by name, so antenna=2 cannot reach Ant2 or return the corrected ACK in production. Required correction: bind descriptor.name into CommandIntent.name and leave dynamic provider method selection to resolve_method_name(intent.params). Then run the discriminating selector and Web ACK tests. Confirmed: antenna=2 lookup resolves Ant2; public protocol remains on=; result shapes remain {on} and {antenna,on}; one shared descriptor/admission leaf remains; no second registry/resolver or raw fallback found. CI state as reviewed: PR remains Draft; Agent Review Gate has no exact-head PASS; no exact-head project quick ran; quick-v2 observation failure is base/metadata state. Hard dependency MOR-2308 consumer wiring remains unresolved. DO NOT MERGE ALONE. |
|
Agent Review: PASS 79eb528 Exact-head code review PASS. Scope verified: exactly five leased files, tree e851179c91f5e4b8ce98e30b96adca83614ca1a5. PR remains Draft. Required project CI is not claimed at this correction head. Hard dependency MOR-2308 consumer wiring remains; DO NOT MERGE ALONE. |
Linear: https://linear.app/morozsm/issue/MOR-2306
Summary
ANTENNA_SWITCHdescriptor policy for exact RX antenna operations and their public aliasesset_rx_antenna {antenna, on}as a distinct descriptor that resolves Ant1/Ant2 without losing its public result shapeset_civ_output_antasTX_SAFECompatibility
Verification
abe6bc8751f00262afcbe363f3c9e416694303e1— 21 failed, 129 passed as expected0a7b049b27766cd4f7dd2bcd34f65b105db73cf7— successful, but stale after independent-review corrections79eb528db42356009bb6d811ab07769d9300dfa4— discriminating RED tests added first; selector intent identity is stable through shared admission; Ruff check and format check passed across all five leased filesActivation dependency
Do not merge or activate this PR alone. Registering these descriptors makes the generic consumer path recognize the operations, while the dependent consumer change must inject this same
ManagedTxAuthorityat the shared leaf. Integrate with the consumer wiring so no fail-open intermediate is deployed.Fake-wire work and retirement of the superseded TX interlock remain separate follow-ups.