You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(subscriptions): drop dispatcher-intercepted RESPONSE_MESSAGE_IDS entries (#734)
Audit of every declared entry against the meaning #732 gave the const —
"the complete set of types that reach `decode`". Sixteen decoders declared
IncomingMessages::Error, which determine_routing classifies before the
allow-list: an error reaches a subscription as RoutedItem::Error/Notice and
never as the Response that decode consumes. The declarations and their
decode arms are removed.
routable_to_request_id_subscription loses its Error exemption, which existed
only so those declarations would not trip the routing guard — const declares,
guard exempts, circular. The circle is broken from the const side.
test_response_message_ids_match_decode_arms now diagnoses Error and Shutdown
specifically instead of reporting them as generic declared-but-unhandled.
The proof also covers the one-shot path: fold_one_shot runs its processor
only on Some(Ok(_)), and RoutedItem::into_legacy yields that only for
Response. wsh's two nested dispatchers are shared with a StreamDecoder and
lose their Error arm here; the remaining one-shot arms are a follow-up.
Drops 15 decoder-level test_decode_error_message* tests plus the two
historical streaming-error tests. All asserted a path only MessageBusStub can
produce — it delivers every fixture as RoutedItem::Response. The behaviour is
covered where it is implemented, by
test_hard_error_with_request_id_terminates_subscription and
test_subscription_hard_error_terminates_stream in both transports.
No production behaviour change: the removed arms were unreachable.
Closes the third follow-up in plans/claude-md-knowledge-graph.md.
0 commit comments