Skip to content

feat: gateway control panel — start, stop, restart, diagnose#552

Merged
0xNyk merged 1 commit intomainfrom
feat/gateway-controls
Apr 4, 2026
Merged

feat: gateway control panel — start, stop, restart, diagnose#552
0xNyk merged 1 commit intomainfrom
feat/gateway-controls

Conversation

@0xNyk
Copy link
Copy Markdown
Member

@0xNyk 0xNyk commented Apr 3, 2026

Summary

The "Configure Gateway" button in the local mode banner was a dead end — it navigated to a panel that said "requires gateway connection." Now it opens a gateway control panel that works regardless of connection state.

What changed

New POST /api/gateways/control endpoint:

  • { gateway: 'hermes', action: 'start' } — runs hermes gateway start
  • { gateway: 'hermes', action: 'stop' } — runs hermes gateway stop
  • { gateway: 'hermes', action: 'restart' } — runs hermes gateway restart
  • { gateway: 'hermes', action: 'diagnose' } — runs hermes doctor
  • Same actions for openclaw gateway
  • GET returns status of all installed gateways (running/stopped, PID, port)

New GatewayControlPanel component:

  • Shows each installed gateway with running status, PID, port
  • Start/Stop/Restart buttons with loading states
  • Diagnose button runs health checks
  • Command output displayed inline
  • Graceful handling when no gateways installed

Routing fix:

  • gateways panel in local mode now renders GatewayControlPanel instead of "requires gateway" error
  • Gateway mode still shows MultiGatewayPanel (unchanged)

Test plan

  • pnpm typecheck — passes
  • pnpm test — 892/892 pass
  • Manual: Click "Configure Gateway" in banner → opens control panel
  • Manual: Click "Start" on Hermes gateway → starts gateway process
  • Manual: Click "Diagnose" → shows hermes doctor output
  • Manual: Click "Stop" → stops gateway, status updates to "Stopped"

Add a gateway management panel accessible from the local mode banner's
"Configure Gateway" button. Works in local mode (was previously blocked
with "requires gateway" message).

- New POST /api/gateways/control endpoint for gateway lifecycle actions
- Supports both Hermes (hermes gateway start/stop/restart, hermes doctor)
  and OpenClaw (openclaw gateway start/stop/restart, openclaw doctor)
- Gateway status detection: Hermes via PID file, OpenClaw via health probe
- GatewayControlPanel: shows installed gateways with status, controls,
  and command output display
- Local mode: "Configure Gateway" button now opens the control panel
  instead of showing "requires gateway" error
- i18n keys added for all 10 locales
@github-actions github-actions bot added the screenshot-drift UI changed — README screenshots may need updating label Apr 3, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 3, 2026

📸 Screenshot Drift Check

This PR modifies UI source files. Please verify whether the README screenshots need refreshing:

  • docs/mission-control-overview.png — main dashboard
  • docs/mission-control-agents.png — agents panel
  • docs/mission-control-memory-graph.png — memory graph
Changed UI files
src/app/[[...panel]]/page.tsx
src/app/api/gateways/control/route.ts
src/components/panels/gateway-control-panel.tsx

See docs/SCREENSHOT-GUIDE.md for instructions on capturing and optimising screenshots.

This comment is posted automatically and can be dismissed if no visual changes occurred.

@0xNyk 0xNyk merged commit 7128058 into main Apr 4, 2026
1 of 2 checks passed
@0xNyk 0xNyk deleted the feat/gateway-controls branch April 4, 2026 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

screenshot-drift UI changed — README screenshots may need updating

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant