Commit Graph

  • a1cb811cb8 fix(cli): avoid voice TTS restart race tmdgusya 2026-05-03 14:12:28 +09:00
  • 314fe9f827 chore(release): add AUTHOR_MAP entries for upcoming salvage batch Teknium 2026-05-04 01:33:54 -07:00
  • 645b99aadd test(cron): cover null next_run_at recovery and non-dict origin tolerance ethan 2026-05-03 04:02:33 +00:00
  • 78b635ee3c fix(cron): recover null next_run_at jobs and tolerate non-dict origin ethan 2026-05-03 03:59:16 +00:00
  • 91ea3ae4b2 test(skills): add bytes-vs-str equivalence and on-disk hash parity tests Teknium 2026-05-03 12:10:20 -07:00
  • 3072e5543b skills-hub: hash binary skill bundle files correctly dh 2026-04-15 07:44:28 +08:00
  • c90f25dd1f chore(release): map daixin1204@gmail.com to @SimbaKingjoe Teknium 2026-05-03 17:09:33 -07:00
  • 744079ffe6 fix(curator): prevent false-positive consolidation from substring matching daixin1204 2026-05-03 21:02:03 +08:00
  • c0300575c1 fix(kanban): use get_default_hermes_root() in list_profiles_on_disk Clooooode 2026-05-03 11:39:58 +12:00
  • 1964b0565b test(kanban): add failing test for list_profiles_on_disk with custom HERMES_HOME Clooooode 2026-05-03 11:39:40 +12:00
  • 8163d37192 fix(skill): reference built-in video_analyze/vision_analyze tools in kanban-video-orchestrator (#19562) Siddharth Balyan 2026-05-04 12:54:50 +05:30
  • a11aed1acc fix(cli): local backend CLI always uses launch directory, stops .env sync of TERMINAL_CWD (#19334) Siddharth Balyan 2026-05-04 11:36:19 +05:30
  • 434d70d8bc Merge pull request #19540 from NousResearch/single_container_for_all Ben Barclay 2026-05-04 15:38:19 +10:00
  • 5671059f62 feat(docker): launch dashboard as side-process via HERMES_DASHBOARD=1 Adds an optional dashboard side-process to the container entrypoint, toggled by HERMES_DASHBOARD=1 (also accepts true / yes). When set, the entrypoint backgrounds hermes dashboard before exec-ing the main command so the user's chosen foreground process (gateway, chat, sleep infinity, …) remains PID-of-interest for the container runtime. docker run -d \ -v ~/.hermes:/opt/data \ -p 8642:8642 -p 9119:9119 \ -e HERMES_DASHBOARD=1 \ nousresearch/hermes-agent gateway run Defaults chosen for the container case: - Host: 0.0.0.0 (reachable through published port; can override to 127.0.0.1 via HERMES_DASHBOARD_HOST for sidecar/reverse-proxy setups) - Port: 9119 (matches hermes dashboard) - Auto-adds --insecure when binding to non-localhost, matching the dashboard's own safety gate for exposing API keys - HERMES_DASHBOARD_TUI is read by hermes dashboard directly — no entrypoint plumbing needed Dashboard output is prefixed with [dashboard] via stdbuf+sed -u so it's easy to separate from gateway logs in docker logs. No supervision: if the dashboard crashes it stays down until the container restarts (documented in the :::note panel). Other changes bundled in: - Deprecate GATEWAY_HEALTH_URL / GATEWAY_HEALTH_TIMEOUT env vars in hermes_cli/web_server.py with a DEPRECATED block comment and a .. deprecated:: note on _probe_gateway_health. The feature still works for this release; it'll be removed alongside the move to a first-class dashboard config key. - Rewrite the "Running the dashboard" doc section around the new single-container pattern. Drops the previously-documented dashboard-as-its-own-container setup — that pattern relied on the deprecated env vars for cross-container gateway-liveness detection, and without them the dashboard would permanently report the gateway as "not running". - Collapse the two-service Compose example (gateway + dashboard container) into a single service with HERMES_DASHBOARD=1. Removes the now-unnecessary bridge network and depends_on. - Drop the ":::warning" caveat about "Running a dashboard container alongside the gateway is safe" — that case no longer exists. Ben 2026-05-04 15:37:27 +10:00
  • 95f395027f Merge pull request #19520 from NousResearch/fix_docker_tui Ben Barclay 2026-05-04 14:29:43 +10:00
  • 2f2998bb1b fix(tui): tolerate npm's peer-flag drop in lockfile comparison _tui_need_npm_install() compares the canonical package-lock.json against the hidden node_modules/.package-lock.json to decide whether npm install needs to re-run. npm 9 drops the "peer": true field from the hidden lock on dev-deps that are *also* declared as peers (the canonical lock preserves the dual annotation). That made the check flag 16 packages (@babel/core, @types/node, @types/react, @typescript-eslint/*, react, vite, tsx, typescript, …) as mismatched on every launch, triggering a runtime npm install. Inside the Docker image, that runtime install then fails with EACCES because /opt/hermes/ui-tui/node_modules/ is root-owned from build time, so docker run … hermes-agent --tui prints: Installing TUI dependencies… npm install failed. …and exits 1, with no preview. The empty preview is a second bug: the launcher captured only stderr, but npm 9 writes EACCES to stdout, which was DEVNULL'd. Fixes: - Add "peer" to _NPM_LOCK_RUNTIME_KEYS so the comparison ignores the non-deterministic field, alongside the existing "ideallyInert". - Capture stdout as well as stderr in the install subprocess so future failures surface a useful preview instead of a bare "failed." line. Regression tests: - test_no_install_when_only_peer_annotation_differs — the exact scenario - test_install_when_version_differs_even_with_peer_drop — guards against the peer-drop tolerance masking a real version skew On-host impact: the same false-positive was firing on every hermes --tui invocation from a normal checkout, silently running a no-op npm install each time (it converged because the host's node_modules/ is writable). Startup time on the TUI should drop noticeably. Ben 2026-05-04 14:13:38 +10:00
  • 363cc93674 fix(cron): bump skill usage when cron jobs load skills Chris Danis 2026-05-02 07:51:22 -04:00
  • 808fee151d fix(auxiliary): propagate explicit_api_key to _try_anthropic() nftpoetrist 2026-05-04 00:12:58 +03:00
  • 74636f9c4a fix(gateway): clear queued reload-skills notes on new/resume/branch molvikar 2026-05-04 00:55:12 +03:00
  • 222767e5e8 fix: sanitize Telegram help command mentions Kenny Wang 2026-05-03 15:45:56 -06:00
  • 6fda92aa7f fix(gateway): bridge top-level require_mention to Telegram config konsisumer 2026-05-03 19:58:04 +02:00
  • 1bd975c0ba fix(gateway): suppress duplicate voice transcripts clawbot 2026-05-03 09:24:08 -06:00
  • b58db237e4 fix(kanban): drop worker identity claim from KANBAN_GUIDANCE (#19427) Teknium 2026-05-03 16:59:00 -07:00
  • 6713274a42 fix(file): strip leaked terminal fences from reads LeonSGP43 2026-05-03 22:59:04 +08:00
  • 2d7543c61f fix(windows): enforce UTF-8 stdout/stderr to prevent UnicodeEncodeError crash Alan Chen 2026-05-03 22:40:34 +08:00
  • 2ababfe6ed chore(release): map 0xKingBack noreply email Teknium 2026-05-03 16:54:06 -07:00
  • 3c42024539 fix(curator): pass auxiliary curator api_key/base_url into runtime resolution 0xKingBack 2026-05-02 01:13:17 +08:00
  • 3792b77bd1 fix(send_message): support QQBot C2C and group chats Kiala 2026-05-03 21:26:24 +08:00
  • 86e64c1d3b fix(gateway): hide required-arg commands from Telegram menu MrBob 2026-05-03 16:49:37 -03:00
  • 408dd8aa28 fix(compressor): skip non-string tool content in dedup pass to prevent AttributeError sprmn24 2026-05-04 00:57:36 +03:00
  • 5bd937533c fix(vision): guard user_prompt type in video_analyze_tool before debug_call_data construction sprmn24 2026-05-04 00:44:47 +03:00
  • 6c4aca7adc fix(vision): guard user_prompt type before debug_call_data construction sprmn24 2026-05-04 00:32:53 +03:00
  • a5cae16496 fix(api_server): fall back to default port on malformed API_SERVER_PORT Zyproth 2026-05-04 00:03:36 +03:00
  • 65bebb9b80 fix(cli): follow 307 redirects in MiniMax OAuth httpx clients Amit Gaur 2026-05-03 12:45:23 -07:00
  • dfdd7b6e6f fix(codex-transport): preserve request override headers for xai responses Zyproth 2026-05-03 16:27:25 +03:00
  • 4a2f822137 fix(mcp): reconnect on terminated sessions LeonSGP43 2026-05-03 21:33:52 +08:00
  • 2658494e81 fix(kanban): add per-path env overrides + dispatcher env injection teknium1 2026-05-03 15:05:28 -07:00
  • f5bd77b3e1 fix(kanban): anchor board, workspaces, and worker logs at the shared Hermes root GodsBoy 2026-05-03 22:33:11 +02:00
  • 7e780f4832 fix(tui): run plugin slash commands live asheriif 2026-05-03 14:50:00 +00:00
  • 167b5648ea Revert "fix(cli): CLI/TUI on local backend always uses launch directory, ignores terminal.cwd (#19242)" (#19329) Siddharth Balyan 2026-05-04 00:43:58 +05:30
  • 9eaddfafa3 fix(cli): CLI/TUI on local backend always uses launch directory, ignores terminal.cwd (#19242) Siddharth Balyan 2026-05-04 00:14:36 +05:30
  • b8ae8cc801 fix(debug): redact log content at upload time in hermes debug share GodsBoy 2026-05-03 19:58:44 +02:00
  • c9a3f36f56 feat: add video_analyze tool for native video understanding (#19301) Siddharth Balyan 2026-05-04 00:04:36 +05:30
  • 0dd8e3f8d8 rename: video-orchestrator → kanban-video-orchestrator SHL0MS 2026-05-03 12:10:38 -04:00
  • 511add7249 feat(skill): add video-orchestrator optional creative skill SHL0MS 2026-05-03 11:40:34 -04:00
  • e97a9993b9 Merge pull request #19307 from NousResearch/bb/fix-terminal-resize-jumble brooklyn! 2026-05-03 10:17:15 -07:00
  • 279b656adc fix(tui): clear Apple Terminal resize artifacts Brooklyn Nicholson 2026-05-03 12:11:24 -05:00
  • e527240b27 fix(tools): write_file handler now rejects missing 'content'/'path' args instead of silently writing zero-byte files (#19096) Bartok9 2026-05-03 03:32:32 -04:00
  • 6b4fb9f878 fix(cron): treat non-dict origin as missing instead of crashing tick Tranquil-Flow 2026-05-03 09:00:34 +10:00
  • 69dd0f7cf1 fix(approval): extend sensitive write target to cover shell RC and credential files JasonOA888 2026-05-03 21:49:15 +08:00
  • 3c59566cc5 chore(release): map leprincep35700 email for PR #18440 salvage teknium1 2026-05-03 08:16:17 -07:00
  • b59bb4e351 fix(gateway): preserve home-channel thread targets across restart notifications leprincep35700 2026-05-01 15:19:25 +00:00
  • d87fd9f039 fix(goals): make /goal work in TUI and fix gateway verdict delivery (#19209) Teknium 2026-05-03 05:49:12 -07:00
  • 55647a5813 fix(whatsapp): pin protobufjs >=7.5.5 via npm overrides to clear 3 critical vulns (#19204) Teknium 2026-05-03 05:22:30 -07:00
  • 6f2dab248a fix: update tests for resume_pending semantics + add AUTHOR_MAP entries kshitijk4poor 2026-05-03 16:22:57 +05:30
  • 1148c46241 fix(gateway): correct ws scheme conversion for https urls charliekerfoot 2026-05-02 16:19:13 -05:00
  • 7a22c639dc chore: add shellybotmoyer to AUTHOR_MAP kshitijk4poor 2026-05-03 16:19:37 +05:30
  • 934103476f fix(gateway): send /new response before cancel_session_processing to avoid race (#18912) Hermes Agent 2026-05-02 17:41:47 +00:00
  • bf3239472f chore: add millerc79 to AUTHOR_MAP kshitijk4poor 2026-05-03 16:18:47 +05:30
  • f1e0292517 fix(gateway): resume sessions after crash/restart instead of blanket suspend millerc79 2026-05-02 19:19:24 -05:00
  • 0a97ce6bff chore: add nftpoetrist to AUTHOR_MAP kshitijk4poor 2026-05-03 16:17:09 +05:30
  • 6c1322b997 fix(slack): close previous handler in connect() to prevent zombie Socket Mode connections nftpoetrist 2026-05-03 00:09:04 +03:00
  • c14bf441a3 chore: add 0xyg3n noreply email to AUTHOR_MAP kshitijk4poor 2026-05-03 16:13:58 +05:30
  • 19ba9e43b6 fix(gateway/discord): require allowlist auth on slash commands 0xyg3n 2026-05-03 16:13:39 +05:30
  • 5d5b8912be test: add tests for cmd_key preservation through name clamping kshitijk4poor 2026-05-03 15:13:10 +05:30
  • c4c0e5abc2 fix: After _clamp_command_names truncates skill names to fit the 32-cha… charliekerfoot 2026-05-02 14:30:05 -05:00
  • 457c7b76cd feat(openrouter): add response caching support (#19132) kshitij 2026-05-03 01:54:24 -07:00
  • 9b5b88b5e0 chore: add MottledShadow to AUTHOR_MAP Teknium 2026-05-03 01:44:17 -07:00
  • a22465e07a fix(weixin): send_weixin_direct cross-loop session check MottledShadow 2026-05-03 00:21:26 +08:00
  • 9987f3d824 fix(acp): compact Zed tool replay rendering Henkey 2026-05-02 17:41:43 +01:00
  • 19854c7cd2 Schedule ACP history replay and fence file output Henkey 2026-05-02 20:23:09 +01:00
  • eb612f5574 fix(acp): keep web extract rendering compact Henkey 2026-05-02 15:22:01 +01:00
  • b294d1d022 fix(acp): keep read-file starts compact Henkey 2026-05-02 14:45:16 +01:00
  • 72c8037a24 fix(acp): polish common tool rendering Henkey 2026-05-02 14:40:48 +01:00
  • ef9a08a872 fix(acp): polish Zed context and tool rendering Henkey 2026-05-02 14:06:51 +01:00
  • e26f9b2070 fix(acp): route Zed thoughts to reasoning callbacks Henkey 2026-05-02 00:16:27 +01:00
  • 4f37669170 fix(tools): reconfigure enabled unconfigured toolsets helix4u 2026-05-01 13:50:54 -06:00
  • d409a4409c fix(model): avoid bedrock credential probe in provider picker helix4u 2026-05-02 16:23:51 -06:00
  • 5d3be898a8 docs(tts): mention xAI custom voice support (#18776) Siddharth Balyan 2026-05-02 16:08:01 +05:30
  • af98122793 fix(auxiliary): propagate explicit_api_key to _try_openrouter() liuhao1024 2026-05-01 18:29:54 +08:00
  • 73bcd83dba chore(release): map beibi9966 email for AUTHOR_MAP teknium1 2026-05-02 02:23:05 -07:00
  • 762eb79f1e fix(gateway): tighten httpx keepalive and close whatsapp typing-response leak (#18451) teknium1 2026-05-02 02:23:00 -07:00
  • 38dd057e91 fix(feishu): finalize remote document downloads inside httpx.AsyncClient context (#18502) beibi9966 2026-05-02 02:22:37 -07:00
  • e444d8f29c fix(gateway): config.yaml wins over .env for agent/display/timezone settings (#18764) Teknium 2026-05-02 02:14:35 -07:00
  • 13f344c5ce fix(agent): try fallback providers at init when primary credential pool is exhausted (#17929) luyao618 2026-04-30 20:45:20 +08:00
  • 1dce908930 fix(gateway): shutdown + restart hygiene (drain timeout, false-fatal, success log) (#18761) Teknium 2026-05-02 02:08:06 -07:00
  • 50f9f389ec chore(release): map ambition0802 email for AUTHOR_MAP teknium1 2026-05-02 02:06:00 -07:00
  • 7696ddc59e fix(cli): robust paste file expansion and process_loop error handling (#17666) ambition0802 2026-05-02 02:05:57 -07:00
  • 5eac6084bc fix(discord): warn on 32-char clamp collisions in the /skill collector (#18759) Teknium 2026-05-02 02:05:01 -07:00
  • e363ced3c3 test(discord): regression coverage for zombie-websocket guard in connect() teknium1 2026-05-02 02:03:40 -07:00
  • 292d2fb42f fix(discord): close old client before reconnect to prevent zombie websockets (#18187) luyao618 2026-05-01 11:40:23 +08:00
  • 0a6865b328 test(credential_pool): regression coverage for .env vs os.environ precedence teknium1 2026-05-02 01:58:44 -07:00
  • 9c626ef8ea chore(release): map franksong2702 email for AUTHOR_MAP teknium1 2026-05-02 01:58:06 -07:00
  • 2ef1ad280b fix: prefer ~/.hermes/.env over os.environ when seeding credential pool Frank Song 2026-05-01 13:42:50 +08:00
  • 10297fa23c fix(discord): /reload-skills now refreshes the /skill autocomplete live (#18754) Teknium 2026-05-02 02:00:11 -07:00
  • 6ec74aec07 fix(gateway): match disabled/optional skills by frontmatter slug, not dir name (#18753) Teknium 2026-05-02 02:00:09 -07:00
  • 8825e9044c fix(discord): complete #18741 for /skill autocomplete and drop legacy 25x25 caps (#18745) Teknium 2026-05-02 02:00:06 -07:00
  • 2470434d60 fix(telegram): probe polling liveness after reconnect to detect wedged Updater Jacob Lizarraga 2026-04-30 14:12:54 -07:00
  • 9bf260472b fix(tools): deduplicate tool names at API boundary for Vertex/Azure/Bedrock liuhao1024 2026-05-02 03:33:13 +08:00
  • 699b3679bc fix(constants): warn once when get_hermes_home() falls back under an active profile (#18746) Teknium 2026-05-02 01:49:55 -07:00