a6351a71e5
Under gateway.multiplex_profiles a shared-token satellite profile (routed via gateway.profile_routes, no bot credential of its own) got an empty adapter map from the multiplex ticker, so _deliver_result fell through to the standalone sender under the satellite's secret scope and failed with "DISCORD_BOT_TOKEN is not set" — even though the primary adapter owns the exact routed channel and had delivered the same target before. Preflight already rescued this topology (#97476); the delivery half did not. - cron/scheduler.py: factor the preflight's primary-config route loader into `_primary_profile_routes_for_current_home()` (one owner for both halves, so route semantics cannot drift) and add `SharedRouteAdapters`, a read-only view over the primary adapter map that resolves an adapter for a (platform, target) ONLY when an enabled primary route with a chat_id/thread_id maps that exact target to the current profile — using the same `ProfileRoute.matches` predicate as inbound routing. `_deliver_result` resolves the transport per target from it; everything else (unmatched chat, disabled route, route for another profile, no primary adapter, guild-only route) is a miss and never uses the primary bot. Execution stays scoped to the satellite; no credential is copied. - cron/scheduler_provider.py: a secondary with no adapter map of its own gets the SharedRouteAdapters view instead of `{}`. This is NOT a default fallback: with no matching route the view is falsy and delivers nothing. Fixes #101113