update_hermes only passed --with croniter, while install_via_uv_tool
passes --with croniter --with httpx --with openai --with aiohttp --with
websockets. After running "Upgrade Hermes" from the panel, the four
missing deps disappeared from the uv tool venv. "hermes gateway run"
then started successfully (cron-only mode) but the api_server platform
adapter failed to construct because aiohttp was absent, so port 8642
never came up and the panel hung on "starting...".
Extract HERMES_RUNTIME_EXTRA_DEPS as a single source of truth plus
append_hermes_runtime_extras and hermes_runtime_extras_log_segment
helpers, and route both install_via_uv_tool and update_hermes through
them so future dep additions cannot drift between the two paths.
Default pull_request types are [opened, synchronize, reopened] which excludes ready_for_review. Draft PRs (e.g. those auto-generated by Cursor Background Agent) thus skipped CI when converted to ready, requiring close+reopen workarounds. Explicit types list now ensures CI runs on draft -> ready transitions too.
Adds two loadSeq guards in _loadDashboardDataInner: after the first await coreP and before the self-heal writeOpenclawConfig path. Prevents stale loads from polluting cache, popping toasts, or writing config after a newer load has been queued.
Fixes#127 — sync_providers_to_agent_models now uses cleaned (merged+stripped) config instead of raw frontend payload, preventing partial writes from dropping other providers from agents/*/agent/models.json.
Fixes#294 — Move version-manager paths (nvm/fnm) before hardcoded system paths (/usr/local/bin etc.) on macOS and Linux so the user's nvm-managed Node is detected first.
Co-authored-by: friendfish
Hermes Agent + multi-channel overhaul. 104 commits, 80 files, +53,808/-9,022. CI green on macOS / Linux / Windows. No release tag pushed; merging only to land long-running local work for further review tomorrow.