Commit graph

4720 commits

Author SHA1 Message Date
nesquena-hermes
d9766d9e56
Merge pull request #3032 from nesquena/release/stage-batch29
stage-batch29: v0.51.147 / Release DS — single-PR streaming ownership-cleanup follow-up
2026-05-27 18:41:31 -07:00
nesquena-hermes
6228ceb5ac stage-batch29: stamp v0.51.147 / Release DS 2026-05-28 01:38:21 +00:00
AJV20
25f8e100ec Merge origin/master into prefill context fix 2026-05-27 21:30:22 -04:00
nesquena-hermes
0614ca63d8 Merge pull request #3010 2026-05-28 01:24:17 +00:00
nesquena-hermes
5edc7d15ae
Merge pull request #3031 from nesquena/release/stage-batch28
stage-batch28: v0.51.146 / Release DR — 6-PR low-risk safety+contrast batch
2026-05-27 18:20:51 -07:00
nesquena-hermes
8d0f1beff3 stage-batch28: stamp v0.51.146 / Release DR 2026-05-28 01:17:07 +00:00
nesquena-hermes
64c83e4932 Merge pull request #3029 2026-05-28 01:02:58 +00:00
nesquena-hermes
d75bbfc90d Merge pull request #3028 2026-05-28 01:02:58 +00:00
nesquena-hermes
3560f37c8d Merge pull request #3027 2026-05-28 01:02:58 +00:00
nesquena-hermes
0c492e4eb1 Merge pull request #3003 2026-05-28 01:02:58 +00:00
nesquena-hermes
43cdd7cc37 Merge pull request #3025
# Conflicts:
#	CHANGELOG.md
2026-05-28 01:02:57 +00:00
nesquena-hermes
0db506f3f9 Merge pull request #3022 2026-05-28 01:02:33 +00:00
ai-ag2026
0af58f2b82 feat: add session discoverability audit 2026-05-28 00:51:32 +02:00
ai-ag2026
9650b387fd fix: keep webui mirrored sessions out of cli filter 2026-05-28 00:51:12 +02:00
ai-ag2026
38905f335c fix: preserve messageful sidebar discoverability 2026-05-27 23:42:24 +02:00
AJV20
fb6dd28ac3 fix: cap custom models endpoint probes 2026-05-27 12:19:42 -04:00
ai-ag2026
3b93345487 fix(sessions): allow hyphenated session ids 2026-05-27 16:18:41 +02:00
sunilkumarvalmiki
b14ef7735f Fix workspace save icon contrast 2026-05-27 19:17:46 +05:30
BonyFish
dc1e369f89 fix: remove webui-side writer to avoid conflict with agent
The .usage.json file is owned by hermes-agent (tools/skill_usage.py).
This change removes the webui-side increment logic to avoid:

1. File ownership conflict - both writing to same file
2. Schema mismatch - agent uses ISO strings, webui used floats
3. Concurrency issues - agent uses fcntl locks, webui had no locking
4. Double-counting - agent already increments counters server-side

Changes:
- api/skill_usage.py: keep only read_skill_usage(), remove increment functions
- api/streaming.py: remove skill usage counter hook
- api/routes.py: adapt response to pass through agent's format as-is,
  with defensive coercion for None values and metadata preservation
- tests/test_skill_usage.py: remove increment tests (17→7 cases)
2026-05-27 20:57:32 +08:00
Hermes Agent
74fe79ddc6 fix(reasoning): use agent metadata for effort support 2026-05-27 03:54:45 -06:00
ai-ag2026
ffd9f337b1 fix(chat): scope settled stream cleanup to source 2026-05-27 09:10:43 +02:00
AJV20
2a96b2acc2 fix: wrap WebUI script prefill text as user context 2026-05-27 03:09:01 -04:00
BonyFish
9141a55ae0 fix test error 2026-05-27 15:05:47 +08:00
BonyFish
3a676b704a feat: add skill usage counter to insights page
- Add api/skill_usage.py for .usage.json read/write with atomic updates
- Track skill_view (view_count), skill_manage (use_count), skill_patch
  (patch_count) invocations per SSE stream completion
- Add GET /api/skills/usage endpoint returning per-skill usage stats
- Render Skill Usage card in Insights panel after LLM Wiki card
- Add i18n keys for en, zh, zh-Hant, ja, it locales
- Add 17 tests covering read/increment logic, API route, and streaming hook
2026-05-27 14:44:28 +08:00
nesquena-hermes
329debcd33
Merge pull request #3004 from nesquena/release/stage-batch27
Release DQ — stage-batch27 — sidebar running-state preservation (v0.51.145)
2026-05-26 22:13:57 -07:00
nesquena-hermes
cc96acd7da stage-batch27: stamp v0.51.145 / Release DQ 2026-05-27 05:08:46 +00:00
george-andraws
541c064a72 fix(session): route messaging metadata loads through display merge
Use _merged_session_messages_for_display for is_messaging_session even in the
metadata-only (messages=0) path. This ensures message_count and last_message_at
match the full load path for Telegram / external messaging sessions that have
stitched or duplicate rows in state.db + sidecar.

Prevents spurious refresh loops, scroll resets, and open panel closures when
resuming cross-surface sessions in the WebUI.

No impact on CLI, non-messaging, or full-message paths. All 580 session tests pass.

Fixes the root cause identified in the SessionDB / render interaction changes.
2026-05-26 22:05:58 -07:00
nesquena-hermes
716a93a77d Merge pull request #3001
# Conflicts:
#	CHANGELOG.md
2026-05-27 04:56:49 +00:00
nesquena-hermes
3f22e54700
Merge pull request #3002 from nesquena/release/stage-batch26
Release DP — stage-batch26 — terminal supervisor hardening (v0.51.144)
2026-05-26 21:54:43 -07:00
nesquena-hermes
58cbc11df2 stage-batch26: stamp v0.51.144 / Release DP 2026-05-27 04:51:22 +00:00
nesquena-hermes
a8e2279d73 stage-batch26: skip test_terminal_survives_short_lived_request_thread (timing flaky)
The 7 other tests in this file deterministically cover the supervisor invariants
(concurrent spawn, timeout-race reap, Popen-failure recovery, supervisor singleton).
This 1 test depends on bash prompt rendering + printf execution echoing through
the PTY within a 1s deadline, which is timing-flaky in non-tty CI.
2026-05-27 04:48:21 +00:00
nesquena-hermes
2d69c18226 stage-batch26: backfill CHANGELOG entry for #2880 2026-05-27 04:40:26 +00:00
nesquena-hermes
744c5d60c4 Merge pull request #2880 2026-05-27 04:40:11 +00:00
Frank Song
8ab9235e00 Preserve server running state in sidebar merge 2026-05-27 12:29:57 +08:00
nesquena-hermes
875ce4169a
Merge pull request #3000 from nesquena/release/stage-batch25
Release DO — stage-batch25 — workspace:// markdown scheme (v0.51.143)
2026-05-26 21:28:39 -07:00
nesquena-hermes
78bcd6f48f stage-batch25: stamp v0.51.143 / Release DO 2026-05-27 04:25:06 +00:00
nesquena-hermes
540993ccaf Merge pull request #2938
# Conflicts:
#	CHANGELOG.md
2026-05-27 04:21:45 +00:00
nesquena-hermes
620696b4a4
Merge pull request #2997 from nesquena/release/stage-batch24
Release DN — stage-batch24 — 4-PR fresh-today batch (v0.51.142)
2026-05-26 20:42:03 -07:00
nesquena-hermes
c3016a0470 stage-batch24: stamp v0.51.142 / Release DN 2026-05-27 03:38:47 +00:00
nesquena-hermes
7f66f72514 Merge pull request #2993
# Conflicts:
#	CHANGELOG.md
2026-05-27 03:25:04 +00:00
nesquena-hermes
c208b710a4 Merge pull request #2996 2026-05-27 03:24:43 +00:00
nesquena-hermes
75cb7662d7 Merge pull request #2995 2026-05-27 03:24:43 +00:00
nesquena-hermes
9be6dce9ad Merge pull request #2994 2026-05-27 03:24:43 +00:00
BonyFish
ea3d4ec0b3 feat(cron): dynamic delivery options from API instead of hardcoded select
Replace the hardcoded 4-option deliver dropdown (local/discord/telegram/slack)
with a dynamic select populated from a new GET /api/crons/delivery-options
endpoint that reads _KNOWN_DELIVERY_PLATFORMS from hermes-agent.

Key changes:
- Add GET /api/crons/delivery-options endpoint returning all known platforms
- Frontend loads options asynchronously on first cron form open, with caching
- Enable deliver editing for existing jobs (was previously disabled)
- Include deliver in update payload when editing cron jobs
- Fallback to local-only if API unavailable
- Custom deliver values (e.g. feishu:oc_xxx) shown with * suffix
- Add cron_deliver_custom i18n key to all 12 locales
- Add 5 integration tests for the new endpoint
2026-05-27 10:58:49 +08:00
Frank Song
0ce1f9e8ed Update SessionDB injection invariant 2026-05-27 10:38:40 +08:00
Frank Song
3a9948d6cf Fix streaming SessionDB profile path 2026-05-27 10:29:31 +08:00
Isla-Liu
20f49e7bda docs(config): address PR #2964 review nits
* Comment alongside _AUTH_FINGERPRINT_VOLATILE_KEYS notes client_secret
  is treated as rotation-only on purpose, not a model-cache
  differentiator (maintainer §Concerns 3).
* _write_auth docstring at tests/test_issue_t16551f61_auth_token_churn_
  fingerprint.py:108 now describes actual behavior (writes + monkeypatch,
  no sleep+restat) — Copilot r3302471228.

Refs #2242. PR #2964 review.
2026-05-27 09:51:32 +08:00
george-andraws
f1b04be8f7 Fix WebUI fallback provider chain merging 2026-05-26 17:51:49 -07:00
nesquena-hermes
08e9ce3d8a
Merge pull request #2992 from nesquena/release/stage-batch23
Release DM — stage-batch23 — 4-PR second hold-bucket pass (v0.51.141)
2026-05-26 17:46:00 -07:00
nesquena-hermes
3a32660739 stage-batch23: stamp v0.51.141 / Release DM 2026-05-27 00:42:38 +00:00