- Registrar: restart: :temporary + bounded in-process retry (2s/10s, configurable)
so a failing registration never cycles the gateway or shares the tree's
max_restarts budget; loud error + normal exit on give-up.
- Global mode: skip the overwrite when commands/0 is empty (symmetric with guild
mode) so a boot never wipes production commands; log how to wipe intentionally.
- Slash: route on top-level interaction type - 2 -> handle_interaction (by name),
3 -> handle_component, 5 -> handle_modal (by custom_id). New optional callbacks
with use-injected debug catch-alls; modules defining only handle_interaction
still compile and work.
- Supervisor: nest Cache + Dispatcher under a :rest_for_one supervisor so a Cache
crash recreates the ETS tables and restarts the Dispatcher after it, leaving
the outer one_for_one Gateway/Session semantics untouched.
- Slash response helpers: merge a caller-supplied integer flags with the
ephemeral bit via Bitwise.bor (4 -> 4; 4 + ephemeral -> 68).
Adds the full README (quickstart, interaction styles, privileged intents,
cache, REST, slash registration, event semantics, Nostrum porting guide,
reliability design), an examples/echo_bot.exs Mix.install script, ex_doc
config in mix.exs, and rewrites Dexcord.Gateway's moduledoc to describe
the finished reliability behavior instead of stale Phase 0-1 scope notes.