Commit Graph

252 Commits

Author SHA1 Message Date
晴天
ae1208d856 feat(hermes): add checkpoint rollback settings 2026-05-25 02:00:24 +08:00
晴天
77cadf9e0a feat(hermes): add agent runtime guard settings 2026-05-25 01:29:28 +08:00
晴天
4766a99d87 feat(hermes): add global toolset disable settings 2026-05-25 01:03:14 +08:00
晴天
8d5d21f908 feat(hermes): add browser tool settings 2026-05-25 00:27:06 +08:00
晴天
26d6ad18bc feat(hermes): add privacy redaction setting 2026-05-24 23:54:46 +08:00
晴天
459811b188 feat(hermes): add input output safety settings 2026-05-24 23:33:03 +08:00
晴天
d245d2e320 feat(hermes): add display reliability settings 2026-05-24 23:03:41 +08:00
晴天
8c963cd3d4 feat(hermes): add human delay settings 2026-05-24 22:31:52 +08:00
晴天
b2146b54cb feat(hermes): add tirith security settings 2026-05-24 22:08:12 +08:00
晴天
7be0ec66cc feat(hermes): add unauthorized dm policy form 2026-05-24 21:41:17 +08:00
晴天
2de5d1e38a feat(hermes): add quick commands config form 2026-05-24 21:21:16 +08:00
晴天
01f17f0a2a feat(hermes): add skills config form 2026-05-24 20:54:29 +08:00
晴天
d9fc9a8783 feat(hermes): add memory flush setting 2026-05-24 20:34:12 +08:00
晴天
56e41dd512 feat(hermes): add terminal execution config form 2026-05-24 20:06:50 +08:00
晴天
122d7a63be feat(hermes): add execution limits config form 2026-05-24 19:28:30 +08:00
晴天
c0b40070c0 feat(hermes): add channel display settings form 2026-05-24 18:42:34 +08:00
晴天
a1307716dd feat(hermes): add streaming config form 2026-05-24 08:40:53 +08:00
晴天
1883e18f02 feat(hermes): add memory config form 2026-05-24 08:04:31 +08:00
晴天
18ca140af8 feat(hermes): add tool loop guardrails form 2026-05-24 07:38:42 +08:00
晴天
5dd6f1be40 feat(hermes): add compression config form 2026-05-24 07:16:00 +08:00
晴天
f500da39c1 feat(hermes): add session runtime config form 2026-05-24 06:49:17 +08:00
晴天
4c29ed68ab fix(hermes): validate raw config saves 2026-05-24 06:10:07 +08:00
晴天
ff4da27eeb feat(hermes): add bundled plugin channel configs 2026-05-24 05:12:17 +08:00
晴天
7b32b533fb feat(channels): add Tlon config compatibility 2026-05-24 02:03:55 +08:00
晴天
7e3bb71fca feat(channels): add IRC config compatibility 2026-05-24 00:57:37 +08:00
晴天
326c5597df feat(channels): add Nostr config compatibility 2026-05-23 09:25:07 +08:00
晴天
dcc3751ded feat(channels): add Twitch config compatibility 2026-05-23 08:42:54 +08:00
晴天
8623efd49c feat(channels): add Nextcloud Talk config compatibility 2026-05-23 08:25:34 +08:00
晴天
579d706075 feat(channels): add ClickClack config compatibility 2026-05-23 08:07:39 +08:00
晴天
d933177ec3 feat(channels): restore WhatsApp config compatibility 2026-05-23 07:51:16 +08:00
晴天
8d745e7543 feat(channels): add iMessage config compatibility 2026-05-23 07:31:06 +08:00
晴天
6c947a1fec feat(hermes): support Discord plugin runtime config 2026-05-23 06:41:49 +08:00
晴天
f188bb85f7 feat(channels): improve Microsoft Teams config compatibility 2026-05-23 06:22:23 +08:00
晴天
49be118c5f feat(channels): improve Signal config compatibility 2026-05-23 05:56:59 +08:00
晴天
09bc45ae4c feat(channels): add Synology and Google Chat config 2026-05-23 05:37:06 +08:00
晴天
53fe25a277 feat(channels): add LINE and Mattermost config 2026-05-23 05:08:51 +08:00
晴天
780b1bdde5 feat(channels): add Zalo channel configuration 2026-05-23 04:38:49 +08:00
晴天
067389d65f fix(channels): add generic channel diagnostics 2026-05-23 04:14:45 +08:00
晴天
d3d527ca34 feat(hermes): add dingtalk channel config 2026-05-23 03:48:33 +08:00
晴天
449dbc3862 fix(channels): validate binding accounts by credential fields 2026-05-23 03:35:02 +08:00
晴天
e2eee18e05 fix(channels): preserve Discord application id 2026-05-23 03:25:22 +08:00
晴天
b6a353d622 fix(channels): stabilize default account selection 2026-05-23 03:12:40 +08:00
晴天
01dff38a97 fix(channels): save multi-account platform configs 2026-05-23 03:06:52 +08:00
晴天
f7518ae4b3 fix(hermes): align channel secrets with runtime env 2026-05-23 02:49:31 +08:00
晴天
6aa7a05f36 fix(channels): preserve SecretRef credentials 2026-05-23 02:23:52 +08:00
晴天
eccf91ed1e feat(hermes): add channel configuration editor 2026-05-23 01:51:08 +08:00
晴天
27b35b6298 fix(channels): normalize OpenClaw channel config policies 2026-05-23 01:14:42 +08:00
晴天
d0f0d1f6b7 fix(gateway): release 0.16.5 2026-05-22 20:42:16 +08:00
晴天
76c4a56302 fix: stabilize gateway startup and kernel i18n 2026-05-22 15:38:56 +08:00
晴天
12cc9cd6ce fix(assistant): give assistant a Hermes identity, surface raw install hint, unblock CI
Three follow-ups the user spotted in one round.

assistant.js — assistant did not know it was on Hermes
  Both engines (OpenClaw and Hermes Agent) reuse the same /assistant
  page (engines/hermes/index.js comments it as "共用页面/引擎无关"),
  but getSystemPromptBase() hard-coded the OpenClaw self-introduction:
  "你帮助用户管理和排障 OpenClaw AI Agent 平台 / 你精通 OpenClaw 的架
  构…", followed by a CLI cheatsheet for `openclaw gateway start` and
  `openclaw config apply`. Result: under the Hermes engine, the
  assistant happily told users to run `openclaw doctor` and edit
  `~/.openclaw/openclaw.json` — neither of which exists in the Hermes
  world.

  Split into a per-engine dispatcher:
    getSystemPromptBase()
      └ if hermes  → getHermesSystemPromptBase()  (new)
      └ else       → getOpenclawSystemPromptBase() (renamed, same body)

  The new Hermes base prompt covers the facts that actually matter:
   - dual-process layout: Gateway 8642 (chat API, what ClawPanel
     mostly drives) vs Dashboard 9119 (admin/profiles/skills/oauth/
     kanban — must be started separately)
   - Profile system (independent workspaces, switchProfile restarts
     dashboard, multi-gateway view)
   - lazy_deps allowlist and why pre-installing matters
   - paths: ~/.hermes (data) and ~/.hermes-venv (interpreter), with a
     reminder that ~/.openclaw/clawpanel.json is the panel config
     shared with the OpenClaw engine — not Hermes data
   - Top-5 problem playbook (9119 not running, venv missing, channels
     hanging on first launch, gateway crashing, profile drift)
   - Explicit "do not give the user `openclaw …` commands"

  Two more spots in buildSystemPrompt() are also engine-aware now:
   - the "ClawPanel 工具能力" bullet list inside the soul-cache branch
   - the "跨平台路径" reminder (Hermes points to .hermes / .hermes-venv)

lazy-deps.js — "请确认目标资源是否仍存在" was masking the real hint
  When the user has not installed Hermes yet, Rust's
  `hermes_lazy_deps_features` returns the very actionable string
  "Hermes venv 未找到(~/.hermes-venv 不存在)。请先安装 Hermes。".
  humanize-error.js then sees "未找到", classifies the error as
  notFound, and replaces the message with the generic template
  "请确认目标资源是否仍存在" — which tells the user nothing about
  installing Hermes.

  Take humanizeError() but render `message + raw` instead of
  `message + hint`. The user now sees both the friendly title and the
  exact Rust-side instruction. Drop the unused humanizeErrorText
  import that this commit replaces.

config.rs — unblock CI (clippy too_many_arguments on existing code)
  The clippy gate has been red on main since e1eda2d ("import external
  client configs") because two helpers in commands/config.rs take >7
  positional parameters:
    - push_client_candidate (14 params)
    - scan_json_client_file (10 params)

  Both helpers exist purely to push a flat record into a Vec<Value>.
  Wrapping them in a struct just to satisfy clippy would force every
  caller to first build that struct, hurting readability. Suppress
  clippy::too_many_arguments locally on these two functions with an
  inline comment explaining why.

## Verification
- node --check + npm run build: clean
- cargo clippy --all-targets -- -D warnings: now compiles to
  "Finished `dev` profile" with zero errors/warnings (previously
  failed with two too_many_arguments)
- Playwright: import lazy-deps with api.hermesLazyDepsFeatures mocked
  to throw "Hermes venv 未找到 … 请先安装 Hermes。", rendered content
  contains "请先安装 Hermes" (hasRaw=true), does not contain the
  generic "请确认目标资源是否仍存在" (hasGenericNotFound=false), and
  does not contain "[object Object]"
2026-05-16 14:24:45 +08:00