Tracking issue from #1267 review (F3), and the durable fix for #1266 review F1.
Problem
The trust gate (AdapterRouter::gate_incoming) is live for the gateway path (#1267) — there process_gateway_event runs the gate before Dispatcher::submit, so gateway Thread/Lane batched modes are gated.
But Discord and Slack call Dispatcher::submit(...) / handle_message(...) directly (discord.rs ~1050/1292, slack.rs ~846/1093/1542), bypassing the gate entirely. Until they route through the gate, those paths are ungated.
Durable fix (long-term, per the #1264 ADR discussion)
- Route Discord + Slack ingress through
AdapterRouter::gate_incoming (a unified incoming_message entry).
- Make
Dispatcher::submit and AdapterRouter::handle_message pub(crate)/private so the gate is the only public door — no adapter (or future dispatch mode) can skip it by construction.
Acceptance
Blocks the Phase 3 deny-all flip (#1264) — the flip must not land while any ingress path is ungated.
Refs #1264 #1266 #1267
Tracking issue from #1267 review (F3), and the durable fix for #1266 review F1.
Problem
The trust gate (
AdapterRouter::gate_incoming) is live for the gateway path (#1267) — thereprocess_gateway_eventruns the gate beforeDispatcher::submit, so gateway Thread/Lane batched modes are gated.But Discord and Slack call
Dispatcher::submit(...)/handle_message(...)directly (discord.rs ~1050/1292, slack.rs ~846/1093/1542), bypassing the gate entirely. Until they route through the gate, those paths are ungated.Durable fix (long-term, per the #1264 ADR discussion)
AdapterRouter::gate_incoming(a unifiedincoming_messageentry).Dispatcher::submitandAdapterRouter::handle_messagepub(crate)/private so the gate is the only public door — no adapter (or future dispatch mode) can skip it by construction.Acceptance
gate_incominggate_incomingsubmit/handle_messageno longer publicly reachable without passing the gateshould_skip_event+ unusedGatewayEventContextfields (Phase 1c)Blocks the Phase 3 deny-all flip (#1264) — the flip must not land while any ingress path is ungated.
Refs #1264 #1266 #1267