Skip to content

[Bug]: Desktop approval card shows a placeholder instead of the command for hook approvals #62402

Description

@rudidev08

Bug Description

With the merged plugin approve hook (#58698), an approval coming from a rule shows a placeholder as the "command" on the desktop approval card, not the real command. The real command lives in the approval's description, but the card attached to the tool call never renders description. So you approve without seeing what runs.

Steps to Reproduce

  1. Add a pre_tool_call plugin rule that returns {"action": "approve"} for a command-bearing tool (e.g. terminal).
  2. In the desktop app, ask something that runs a shell command, e.g. "what folder are you in?" (runs pwd).
  3. On the approval card, expand "Command".
  4. It shows <terminal> (plugin approval rule) instead of pwd.

Expected Behavior

The approval card shows the actual command (or the description, which contains it), so you can see what you're approving.

Actual Behavior

The "Command" toggle shows the synthetic label <terminal> (plugin approval rule). description (which holds run\npwd) isn't rendered on that card at all, so there's no way to see the command before approving.

Affected Component

  • Tools (terminal, file ops, web, code execution, etc.)
  • Other (desktop app approval UI)

Messaging Platform (if gateway-related)

N/A (CLI only)

Debug Report

Not attaching hermes debug share output: this is a deterministic UI bug reproducible from the steps above, and the shared logs carry prompt/message content and personal data that isn't needed here (see #22016). Environment dump instead:

version:          0.18.2 [5e849942] (2026-07-10)
os:               Darwin 25.5.0 arm64
python:           3.11.15
openai_sdk:       2.24.0
profile:          default
model:            deepseek/deepseek-v4-flash
provider:         nous
terminal:         docker
api_keys:         (all not set)
features:         toolsets=hermes-cli, gateway running, cron_jobs 3, skills 1
config_overrides: terminal.backend=docker, compression.threshold=0.7, tts.provider=openai,
                  fallback_providers=[omlx/Qwen3.5-122B-A10B-4bit]

Operating System

macOS 26.5.2

Python Version

3.11.15 (hermes runtime)

Hermes Version

v0.18.2 (2026.7.7.2), upstream 5e84994, git install, up to date

Root Cause Analysis (optional)

Proposed Fix (optional)

Render description on the inline approval card too (and/or put the real command in command for command-bearing tools).

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existscomp/desktopElectron desktop app (apps/desktop/*)comp/toolsTool registry, model_tools, toolsetstype/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions