Skip to content

feat(gateway): Add log option to tool_progress setting#3458

Open
dlkakbs wants to merge 2 commits intoNousResearch:mainfrom
dlkakbs:feat/tool-progress-log-mode
Open

feat(gateway): Add log option to tool_progress setting#3458
dlkakbs wants to merge 2 commits intoNousResearch:mainfrom
dlkakbs:feat/tool-progress-log-mode

Conversation

@dlkakbs
Copy link
Copy Markdown
Contributor

@dlkakbs dlkakbs commented Mar 27, 2026

What does this PR do?

Adds a new log option to the existing display.tool_progress setting.

When set to log, tool progress events are written to ~/.hermes/logs/tool_progress.log with timestamps instead of being sent to the gateway provider (Telegram, Discord, etc.). This enables full audit/monitoring of agent tool activity without cluttering the chat with progress messages.

This is particularly useful for production or shared gateway deployments where you want visibility into what the agent is doing, but don't want intermediate tool updates appearing in the conversation.

Related Issue

#3450

Type of Change

  • ✨ New feature (non-breaking change that adds functionality)

Changes Made

  • gateway/run.py — Added tool_progress_log_mode flag; progress_queue is skipped in log mode; added _append_tool_log() closure that writes timestamped entries to
    ~/.hermes/logs/tool_progress.log; progress_task only started when there is an active queue (not in log mode)
  • cli.py — Added log to the /verbose cycle (off → new → all → verbose → log → off) with a descriptive label
  • cli-config.yaml.example — Documented the new log option under display.tool_progress
  • hermes_cli/setup.py — Added log to the valid modes list and help text in the interactive setup wizard

How to Test

  1. Set display.tool_progress: log in ~/.hermes/config.yaml
  2. Start the gateway and send a message that triggers tool use (e.g. ask the agent to read a file)
  3. Verify no tool progress messages appear in the chat (Telegram/Discord/etc.)
  4. Check ~/.hermes/logs/tool_progress.log — each tool call should appear with a timestamp and preview
  5. Alternatively, cycle to log mode via /verbose in the CLI and confirm the label reads Tool progress: LOG

Checklist

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits (fix(scope):, feat(scope):, etc.)
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix/feature (no unrelated commits)
  • I've run pytest tests/ -q and all tests pass
    6180 tests collected, 1 pre-existing collection error in tests/tools/test_mcp_tool.py (unrelated to this change)
  • I've added tests for my changes (required for bug fixes, strongly encouraged for features)
  • I've tested on my platform: macOS

Documentation & Housekeeping

  • I've updated cli-config.yaml.example if I added/changed config keys
  • I've considered cross-platform impact (Windows, macOS) per the compatibility guide — Path.mkdir(parents=True, exist_ok=True) is cross-platform safe

dlkakbs added 2 commits March 28, 2026 00:42
…ile instead of provider

Adds a new `log` option to the `display.tool_progress` setting. When set,
tool progress events are written to ~/.hermes/logs/tool_progress.log with
timestamps instead of being sent to the gateway provider, enabling audit/
monitoring without messaging noise.
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