mirror of
https://github.com/nesquena/hermes-webui.git
synced 2026-05-23 02:40:15 +00:00
f14280e2c4
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>
1.1 KiB
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=cdpenv 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.