From 9d403fd4154ff4eb34aed3e91b4650c8797e65ff Mon Sep 17 00:00:00 2001 From: Austin <112558420+rixau@users.noreply.github.com> Date: Tue, 10 Mar 2026 02:30:31 -0400 Subject: [PATCH] fix(ui): replace Manual RPC text input with sorted method dropdown (#14967) Merged via squash. Prepared head SHA: 1bb49b2e64675d37882d0975eb19f8fafd3c6fe9 Co-authored-by: rixau <112558420+rixau@users.noreply.github.com> Co-authored-by: BunsDev <68980965+BunsDev@users.noreply.github.com> Reviewed-by: @BunsDev --- CHANGELOG.md | 1 + ui/src/ui/app-render.ts | 1 + ui/src/ui/views/debug.ts | 19 ++++++++++++++----- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ecb7cd166..f7574f71e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -118,6 +118,7 @@ Docs: https://docs.openclaw.ai - MS Teams/authz: keep `groupPolicy: "allowlist"` enforcing sender allowlists even when a team/channel route allowlist is configured, so route matches no longer widen group access to every sender in that route. Thanks @zpbrent. - Security/system.run: bind approved `bun` and `deno run` script operands to on-disk file snapshots so post-approval script rewrites are denied before execution. - Skills/download installs: pin the validated per-skill tools root before writing downloaded archives, so rebinding the lexical tools path cannot redirect download writes outside the intended tools directory. Thanks @tdjackey. +- Control UI/Debug: replace the Manual RPC free-text method field with a sorted dropdown sourced from gateway-advertised methods, and stack the form vertically for narrower layouts. (#14967) thanks @rixau. ## 2026.3.7 diff --git a/ui/src/ui/app-render.ts b/ui/src/ui/app-render.ts index 7fbe38c9c..1214bcc93 100644 --- a/ui/src/ui/app-render.ts +++ b/ui/src/ui/app-render.ts @@ -1081,6 +1081,7 @@ export function renderApp(state: AppViewState) { models: state.debugModels, heartbeat: state.debugHeartbeat, eventLog: state.eventLog, + methods: (state.hello?.features?.methods ?? []).toSorted(), callMethod: state.debugCallMethod, callParams: state.debugCallParams, callResult: state.debugCallResult, diff --git a/ui/src/ui/views/debug.ts b/ui/src/ui/views/debug.ts index 9ca337259..3379e8813 100644 --- a/ui/src/ui/views/debug.ts +++ b/ui/src/ui/views/debug.ts @@ -9,6 +9,7 @@ export type DebugProps = { models: unknown[]; heartbeat: unknown; eventLog: EventLogEntry[]; + methods: string[]; callMethod: string; callParams: string; callResult: string | null; @@ -71,14 +72,22 @@ export function renderDebug(props: DebugProps) {