How Traversal is wired into a chat channel.
Stored as slack_channel_enrollments.mode. A channel with no enrollment
row is implicitly MANUAL, except a Slack mention, which uses the org
default so it agrees with the row the join handler is about to write.
Storing an explicit MANUAL row lets the channel carry per-channel state
(like custom_instruction) without enabling auto-triggers. Removing a
channel from Channel Management entirely is a separate act (archiving the
enrollment), not a mode.
READ_ONLY is the one mode that suppresses outbound behavior rather
than selecting a flavor of it: Traversal keeps ingesting and storing every
message, and answers every interactive surface with a fixed notice instead
of doing work. It is only offered while its organization's gate is on --
see engagement_policy. Existing READ_ONLY channels keep the mode
when that gate is turned back off, so nothing starts talking again behind
a customer's back.