feat(status): show each served profile's shared-listener callback URLs

hermes -p <name> gateway status, hermes gateway status and hermes status (under
Serves:) list the /p/<profile>/<path> URL per inbound-port platform the live
multiplexer serves, read from the <profile>:<platform> ingress_url in the default
home's gateway_state.json (hermes_cli/gateway_multiplex_served.py). The dashboard's
messaging payload carries the same ingress_url and the Channels page renders it.
The dashboard's 409 guard now covers only api_server/webhook (the mirrored pair):
enabling Twilio/LINE/Teams/... on a secondary is allowed because the gateway serves
it.
This commit is contained in:
Teknium
2026-09-12 01:39:20 -07:00
parent 6fc76ce751
commit 65fd3a2b9c
6 changed files with 77 additions and 14 deletions
+2
View File
@@ -1590,6 +1590,8 @@ export interface MessagingPlatform {
error_message: string | null;
updated_at: string | null;
home_channel: { platform: string; chat_id: string; name: string; thread_id?: string } | null;
/** Multiplex secondary served on the default profile's shared listener: the vendor callback URL. */
ingress_url?: string | null;
whatsapp_setup?: {
mode?: string;
allowed_users_set?: boolean;
+6
View File
@@ -567,6 +567,12 @@ export default function ChannelsPage() {
{platform.error_message}
</span>
)}
{platform.ingress_url && (
<span className="text-xs text-muted-foreground break-all">
Callback URL (shared listener):{" "}
<code className="font-mono">{platform.ingress_url}</code>
</span>
)}
</div>
</div>