Files
hermes-webui/docs/ISSUES.md
T
bergeouss f14280e2c4 fix(#1195): route sessions to profile dir even when dir doesn't exist yet (#1373)
When a user switched profiles and created a new session, the session
was saved to the default profile directory instead of the active
profile directory — because get_hermes_home_for_profile() silently
fell back to _DEFAULT_HERMES_HOME when the profile directory didn't
exist yet on disk.

Root cause: api/profiles.py:156 had `if profile_dir.is_dir(): return
profile_dir; return _DEFAULT_HERMES_HOME`. New profiles (no session
yet, so no dir) routed every session back to default.

Fix: remove the is_dir() guard, return the profile path
unconditionally. The profile directory is created on first use by
the agent/session layer.

5 regression tests in tests/test_issue1195_session_profile_routing.py:
existing-profile, non-existent-profile (the core fix), None, empty-
string, 'default' all return the expected path.

Co-authored-by: bergeouss <bergeouss@users.noreply.github.com>
2026-04-30 23:24:31 +00:00

1.1 KiB

Upstream Issues — Root Cause Analysis

#1256: Browser tools fail with "Playwright not installed"

Root Cause

The check lives in hermes-agent (upstream), not hermes-webui:

hermes-agent/tools/browser_tool.py → check_browser_requirements()

check_browser_requirements() does not recognize CDP (Chrome DevTools Protocol) mode — it only looks for a local Playwright/Puppeteer install. When the agent runs in CDP mode (connecting to an existing browser), the check still fails.

WebUI side

The WebUI already passes CLI_TOOLSETS correctly per-request. The enabled_toolsets field in the cron/chat config is dynamic and works as intended.

Fix required

The fix must happen in hermes-agent/tools/browser_tool.py:

  • check_browser_requirements() should skip the Playwright check when CDP mode is configured
  • Or add a BROWSER_MODE=cdp env var that bypasses the local browser requirement

Workaround

Use CLOUD_BROWSER=true or configure browser.base_url to point to a remote CDP endpoint. This bypasses the local Playwright requirement.