Stable builder for embedding the proxy with custom extension points. Obtain it
via Proxy::builder. Every seam defaults to the built-in behaviour, so a
builder with no overrides is identical to Proxy::bind. The enterprise plugs
a distributed rate-limit store or premium modules here without forking
(BOUNDARY §4).
Handle that can hot-reload a running proxy’s configuration. Obtained via
Proxy::reloader(); cheap to clone (an Arc). Used by the SIGHUP task in the
binary and directly by tests.
A factory that (re)builds the injected detection modules. Called ONCE at bind and again
on every config reload — so modules injected by an embedder (BOUNDARY §4) SURVIVE a
SIGHUP and are re-init’d, instead of being dropped (the pre-0.3 behaviour). It returns
a Result as a UNIT: on error the whole reload is aborted and the last-good Reloadable
(which still holds the working modules) is kept — the modules are never dropped on a
failed rebuild. A boxed closure so an embedder can capture its own (enterprise) config.