Skip to content

feat(dashboard): Channels page — set up every gateway messaging channel from the browser#37211

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-747408f2
Jun 2, 2026
Merged

feat(dashboard): Channels page — set up every gateway messaging channel from the browser#37211
teknium1 merged 1 commit into
mainfrom
hermes/hermes-747408f2

Conversation

@teknium1

@teknium1 teknium1 commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Summary

You can now set up every gateway messaging channel from the dashboard — the page that was missing after the admin-panel work.

The /api/messaging/platforms endpoints (catalog + configure + test) shipped with the desktop app but never got a browser UI. The recent admin PRs (#36704, #36736) completed MCP, webhooks, shell hooks, and system stats but skipped messaging channels. This wires the frontend to that existing backend.

What it does

  • New Channels page lists all 20 built-in platforms plus any plugin platforms (IRC, Line, Teams, Google Chat, ntfy, SimpleX, MS Graph…), each with live connection status.
  • Configure opens a per-platform form rendering exactly that channel's setup fields (token, app token, server URL, allowlist, …) — secrets masked, required fields validated, existing values shown redacted, blank = keep current. Each carries a "Setup guide" link.
  • Enable / disable toggle, Test (configured/enabled/connected report), and a Restart gateway button.

How

Frontend-only. Reuses the existing backend: env vars write to ~/.hermes/.env, the enabled flag to config.yaml. The gateway's _apply_env_overrides() auto-enables a platform once its required env vars are present, so the channel connects on the next restart.

  • web/src/pages/ChannelsPage.tsx (new)
  • web/src/lib/api.ts: MessagingPlatform types + getMessagingPlatforms / updateMessagingPlatform / testMessagingPlatform
  • web/src/App.tsx: /channels route + nav tab
  • website/docs/user-guide/features/web-dashboard.md: Channels section + REST endpoints + screenshot

Validation

Result
tsc -b + vite build clean
eslint (ChannelsPage) 0 errors (App.tsx errors are pre-existing on main)
E2E (FastAPI TestClient, temp HERMES_HOME) GET lists 21 platforms → PUT writes token+enable to disk → GET reflects configured/redacted (no leak) → test reports gateway-stopped → unknown-key 400 → unknown-platform 404 → disable. All assertions pass.
Live dashboard spun up against temp home, navigated /channels, opened Telegram config modal, confirmed fields render from backend catalog. Screenshot in docs.

Infographic

dashboard-channels-setup

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

🔎 Lint report: hermes/hermes-747408f2 vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 9637 on HEAD, 9637 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 4991 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

…el from the browser

The /api/messaging/platforms endpoints (catalog, configure, test) shipped
with the desktop app but never got a dashboard UI; the recent admin-panel
PRs covered MCP/webhooks/hooks/system but skipped messaging channels. This
adds the missing page so all 20+ channels (Telegram, Discord, Slack, Matrix,
Mattermost, WhatsApp, Signal, BlueBubbles, Email, SMS, DingTalk, Feishu,
WeCom, WeChat, QQ Bot, Yuanbao, plugin platforms, etc.) can be configured,
enabled/disabled, tested, and connected entirely from the browser.

- web/src/pages/ChannelsPage.tsx: per-platform list with live status, enable
  Switch, Test, and a Configure modal that renders each platform's exact
  setup fields (secrets masked, required validated, redacted display).
- web/src/lib/api.ts: MessagingPlatform types + get/update/test client fns.
- web/src/App.tsx: /channels route + nav tab (Radio icon, after MCP).
- docs: Channels section + REST endpoints + screenshot.

Frontend-only — reuses the existing env-write + config-enable backend, which
auto-enables a platform once its required env vars are present and the
gateway restarts. No core changes, no new tool schema.
@teknium1 teknium1 force-pushed the hermes/hermes-747408f2 branch from dcd7e24 to 658e5a7 Compare June 2, 2026 06:35
@teknium1 teknium1 merged commit 3c1d066 into main Jun 2, 2026
21 checks passed
@teknium1 teknium1 deleted the hermes/hermes-747408f2 branch June 2, 2026 06:41
changman pushed a commit to changman/hermes-agent that referenced this pull request Jun 10, 2026
…el from the browser (NousResearch#37211)

The /api/messaging/platforms endpoints (catalog, configure, test) shipped
with the desktop app but never got a dashboard UI; the recent admin-panel
PRs covered MCP/webhooks/hooks/system but skipped messaging channels. This
adds the missing page so all 20+ channels (Telegram, Discord, Slack, Matrix,
Mattermost, WhatsApp, Signal, BlueBubbles, Email, SMS, DingTalk, Feishu,
WeCom, WeChat, QQ Bot, Yuanbao, plugin platforms, etc.) can be configured,
enabled/disabled, tested, and connected entirely from the browser.

- web/src/pages/ChannelsPage.tsx: per-platform list with live status, enable
  Switch, Test, and a Configure modal that renders each platform's exact
  setup fields (secrets masked, required validated, redacted display).
- web/src/lib/api.ts: MessagingPlatform types + get/update/test client fns.
- web/src/App.tsx: /channels route + nav tab (Radio icon, after MCP).
- docs: Channels section + REST endpoints + screenshot.

Frontend-only — reuses the existing env-write + config-enable backend, which
auto-enables a platform once its required env vars are present and the
gateway restarts. No core changes, no new tool schema.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant