Commit Graph

1293 Commits

Author SHA1 Message Date
AJV20 d8a48ee5f8 Merge remote-tracking branch 'origin/master' into fix/webui-gateway-tool-activity
# Conflicts:
#	CHANGELOG.md
#	tests/test_webui_gateway_chat_backend.py
2026-05-28 16:11:34 -04:00
AJV20 b76a6dfedb fix: forward gateway tool activity to webui 2026-05-28 16:03:16 -04:00
nesquena-hermes c1a7668bdf Merge PR #3091 2026-05-28 19:51:29 +00:00
nesquena-hermes 6719f35930 Merge PR #3094
# Conflicts:
#	CHANGELOG.md
#	api/streaming.py
2026-05-28 19:51:29 +00:00
nesquena-hermes 20f8bc3290 Merge PR #3090
# Conflicts:
#	CHANGELOG.md
2026-05-28 19:50:10 +00:00
nesquena-hermes 1a6409764a Merge PR #3093
# Conflicts:
#	CHANGELOG.md
2026-05-28 19:49:34 +00:00
nesquena-hermes 22db5bbe67 Merge PR #3092
# Conflicts:
#	CHANGELOG.md
2026-05-28 19:48:56 +00:00
Hermes Agent b92204a7b7 fix(sidebar): keep newer continuation visible over older snapshot 2026-05-28 13:38:06 -06:00
AJV20 d539d5c079 fix: budget webui prefill context 2026-05-28 15:26:35 -04:00
theseussss b554fd8078 fix(reasoning): 推理强度补齐 max 档,与 hermes_constants 对齐
WebUI 镜像的 VALID_REASONING_EFFORTS 此前止于 xhigh,漏了底层
hermes_constants 已有的 max 档。补齐后端常量、前端命令/下拉/帮助文本,
并同步快照测试。支持 max thinking 的 provider(如 Anthropic)现可在
composer 下拉和 /reasoning 命令中选到 Max。
2026-05-29 03:05:02 +08:00
AJV20 d5b36267f7 Merge remote-tracking branch 'origin/master' into fix/selective-durable-writeback
# Conflicts:
#	CHANGELOG.md
2026-05-28 14:59:12 -04:00
AJV20 c494e41220 Merge remote-tracking branch 'origin/master' into fix/webui-gateway-context-prefill
# Conflicts:
#	CHANGELOG.md
2026-05-28 14:52:15 -04:00
AJV20 2cb3c9f10b Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	CHANGELOG.md
#	tests/test_workspace_git.py
2026-05-28 14:50:33 -04:00
AJV20 00f4b11227 fix: limit webui durable memory guidance 2026-05-28 14:48:30 -04:00
AJV20 609a0c887b fix: carry WebUI context through gateway chat 2026-05-28 14:33:32 -04:00
nesquena-hermes ad9b38c945 Merge PR #3086
# Conflicts:
#	CHANGELOG.md
2026-05-28 18:27:03 +00:00
nesquena-hermes 88bdc99a49 Merge PR #3085
# Conflicts:
#	CHANGELOG.md
2026-05-28 18:27:03 +00:00
nesquena-hermes 0a2dabc730 stage-batch36: tighten #3064 MEDIA: token gate to non-user-role messages
Per Opus advisor on stage-batch36: skip role='user' messages in
_session_media_token_allows_image_path so a user-injected MEDIA: token
cannot mint an allow-list entry for the user's own request. Preserves
the original use case (assistant/tool emitted artifacts outside the
active workspace) while making the implicit threat model explicit.

Defense-in-depth — the single-user WebUI scope means same-origin user
input already had the same effective access, but multi-user / shared
WebUI deployments would benefit from the restriction.
2026-05-28 18:20:25 +00:00
ai-ag2026 07aed6b7ff fix(session): preserve subsecond message timestamp order 2026-05-28 19:58:18 +02:00
ai-ag2026 1cd58f6f5a fix(session): preserve sidecar order in display merges 2026-05-28 19:58:17 +02:00
AJV20 cf6e3111c4 Merge remote-tracking branch 'origin/master' into fix/webui-bugfix-sweep
# Conflicts:
#	CHANGELOG.md
2026-05-28 13:56:00 -04:00
nesquena-hermes a3fc305aeb Merge PR #3077
# Conflicts:
#	CHANGELOG.md
#	tests/test_webui_gateway_chat_backend.py
2026-05-28 17:47:56 +00:00
nesquena-hermes 1c89c7d327 Merge PR #3064
# Conflicts:
#	CHANGELOG.md
2026-05-28 17:47:35 +00:00
nesquena-hermes 4412aea9e8 Merge PR #3059
# Conflicts:
#	CHANGELOG.md
2026-05-28 17:47:34 +00:00
nesquena-hermes 921b94a287 Merge PR #3046
# Conflicts:
#	CHANGELOG.md
2026-05-28 17:47:34 +00:00
nesquena-hermes c642c1e438 Merge PR #3069
# Conflicts:
#	CHANGELOG.md
2026-05-28 17:47:34 +00:00
nesquena-hermes 11ea6c3023 Merge PR #3060 2026-05-28 17:47:33 +00:00
nesquena-hermes 007ba46c3f Merge PR #3048
# Conflicts:
#	CHANGELOG.md
2026-05-28 17:47:33 +00:00
nesquena-hermes dc5b4b1697 Merge PR #3037
# Conflicts:
#	CHANGELOG.md
2026-05-28 17:47:33 +00:00
AJV20 60d4b2d990 fix: harden WebUI bugfix sweep 2026-05-28 13:38:50 -04:00
nesquena-hermes 4058c741b6 Merge PR #3072
# Conflicts:
#	CHANGELOG.md
2026-05-28 16:11:16 +00:00
nesquena-hermes 50a0d254a3 Merge PR #3047
# Conflicts:
#	CHANGELOG.md
2026-05-28 16:11:16 +00:00
nesquena-hermes 167ed85e8e Merge PR #3070
# Conflicts:
#	CHANGELOG.md
2026-05-28 16:11:16 +00:00
nesquena-hermes d446a6c304 Merge PR #3049
# Conflicts:
#	CHANGELOG.md
2026-05-28 16:10:49 +00:00
nesquena-hermes 0fd12b2365 Merge PR #3056
# Conflicts:
#	CHANGELOG.md
2026-05-28 16:10:12 +00:00
nesquena-hermes 0147f05c0d Merge PR #3055 2026-05-28 16:09:47 +00:00
nesquena-hermes b77398abbf Merge PR #3043 2026-05-28 16:09:45 +00:00
AJV20 8e6ed66815 fix: clarify gateway chat auth errors 2026-05-28 09:59:35 -04:00
AJV20 cbd3704a7f fix: preserve literal prefill script paths 2026-05-28 09:31:07 -04:00
ai-ag2026 3469a2f898 fix: avoid interruption marker for completed journal runs 2026-05-28 15:19:09 +02:00
AJV20 3f22902423 fix: forward gateway image attachments 2026-05-28 08:40:51 -04:00
AJV20 0458a0a065 fix: report stored upload filenames 2026-05-28 08:33:50 -04:00
AJV20 9e69db9920 fix: show cron sessions in project filter 2026-05-28 08:10:15 -04:00
AJV20 1b5e6f6fae fix: mirror WebUI prefill env for AI-recent notes 2026-05-28 07:19:31 -04:00
Frank Song 10573ab8aa Fix session media image rendering 2026-05-28 18:05:01 +08:00
gavinssr 9e5403994c fix(profiles): write API key to .env instead of config.yaml on profile creation
When a user creates a profile through the WebUI and supplies an API key,
the key was written to config.yaml under model.api_key. However, Hermes
Agent's provider layer reads keys from environment variables (.env), not
from config.yaml — making the key invisible to the actual LLM provider.

Additionally, hermes profile show reports .env: not configured when no
.env file exists, regardless of config.yaml contents, giving users the
false impression that their API key was not saved.

Changes:
- Add _PROVIDER_ENV_MAP to resolve provider IDs to .env variable names
  (kimi-coding → KIMI_API_KEY, deepseek → DEEPSEEK_API_KEY, etc.)
- Add _write_api_key_to_dotenv() that writes the key to the profile's
  .env file under the correct provider-specific variable
- Add _upsert_dotenv_line() helper for idempotent KEY=value writes
- Remove api_key writing from _write_endpoint_to_config()
- Wire _write_api_key_to_dotenv() into create_profile_api()

Fixes: profile created via WebUI shows .env: not configured despite
        correct API key being entered in the form.
2026-05-28 15:45:17 +08:00
ai-ag2026 ce59e7ca20 fix: defer stale stream repair for active workers 2026-05-28 09:33:40 +02:00
Frank Song 9190ab4449 Fix empty partial activity tail recency 2026-05-28 15:30:49 +08:00
ai-ag2026 62efbfb13f fix: use generic title language prompt 2026-05-28 09:14:46 +02:00
ai-ag2026 b046cb42c3 fix: remove German-only fallback title override 2026-05-28 09:09:59 +02:00