AJV20
612fcd30fe
fix: avoid duplicate live tool events
2026-05-19 18:41:08 -04:00
AJV20
ebb4dffc7d
fix: stream live tool callback events
2026-05-19 14:55:19 -04:00
nesquena-hermes
6c0f864b10
Stage 386: PR #2587
...
# Conflicts:
# CHANGELOG.md
2026-05-19 18:20:47 +00:00
nesquena-hermes
86f52f67b8
Stage 386: PR #2581
...
# Conflicts:
# api/streaming.py
2026-05-19 18:20:47 +00:00
nesquena-hermes
0585881511
Stage 386: PR #2583
2026-05-19 18:20:07 +00:00
nesquena-hermes
9a512194d5
Stage 386: PR #2582
...
# Conflicts:
# CHANGELOG.md
2026-05-19 18:20:07 +00:00
Lumen Yang
a8d429775c
fix(webui): preserve casual chat compaction guard
2026-05-19 14:34:58 +00:00
AJV20
f93e288214
Fix stale stream recovery writeback race
2026-05-19 10:26:45 -04:00
dobby-d-elf
2a95c1e482
Fix profile-aware assistant display names
2026-05-19 07:17:11 -06:00
Michael Lam
71d8a8fb1b
fix: reap terminal shells on shutdown
2026-05-19 04:57:51 -07:00
starship-s
2e9ca283dc
fix: display canonical cache hit percentage
2026-05-19 02:27:12 -06:00
Lumen Yang
600bb48970
fix(webui): use active state db for metadata summary
2026-05-19 08:02:43 +00:00
Lumen Yang
6ca63e5815
perf(webui): keep external refresh metadata cheap
2026-05-19 08:02:43 +00:00
Lumen Yang
a63ab310b5
fix(webui): preserve reconciled session invariants
2026-05-19 08:02:43 +00:00
Lumen Yang
467ef33a24
feat(webui): reconcile external session updates
...
When API server runs append messages directly to state.db, reconcile WebUI sidecar sessions with those canonical rows across API responses, model-facing streaming context, and active browser refresh.
Add append-only state.db merge helpers, metadata-only counts for refresh polling, and regression coverage for API visibility, context incorporation, and frontend refresh behavior.
2026-05-19 08:02:43 +00:00
nesquena-hermes
54875f2110
Stage 385: PR #2550
2026-05-19 03:13:47 +00:00
nesquena-hermes
d92e44ef5a
Stage 385: PR #2568
...
# Conflicts:
# CHANGELOG.md
2026-05-19 03:13:47 +00:00
Michael Lam
1827ea3efd
fix: add Grok OAuth provider catalog support
2026-05-18 19:51:01 -07:00
Dennis Soong
ea978a1989
fix: surface auto-compression handoff
2026-05-19 10:45:43 +08:00
nesquena-hermes
0bb8fde586
Mark ControlResult unsafe_hash=False with explainer (Opus advisor followup)
2026-05-18 22:50:45 +00:00
nesquena-hermes
4f90fc5339
Stage 384: PR #2544
2026-05-18 22:44:02 +00:00
nesquena-hermes
589e0bf490
Stage 384: PR #2556
...
# Conflicts:
# CHANGELOG.md
2026-05-18 22:44:02 +00:00
nesquena-hermes
91099051c6
Stage 384: PR #2505
...
# Conflicts:
# CHANGELOG.md
2026-05-18 22:44:02 +00:00
nesquena-hermes
2675b6266d
Stage 384: PR #2520
...
# Conflicts:
# CHANGELOG.md
2026-05-18 22:44:02 +00:00
Michael Lam
6917b9a0e7
fix: sanitize custom provider env hints
2026-05-18 15:18:20 -07:00
Ruslan
6d8e5031fc
Merge branch 'master' into fix/archive-extract-respects-attachment-dir
2026-05-18 23:01:23 +03:00
keyos
b2e1bac149
fix(config): keep anonymous custom endpoints in picker when /v1/models probe fails
...
When an anonymous custom endpoint (bare base_url, not a named custom_providers[] entry) fails its /v1/models probe, the provider group was silently dropped from the model picker entirely. This made the endpoint unusable even when /v1/chat/completions would work fine.
The fix adds an elif branch: if pid == 'custom', a cfg_base_url is configured, but no models were returned by the probe, the group is still added with an empty model list. Users can then select the Custom group and type a model ID manually in the picker's free-form input.
Closes #2542 .
2026-05-18 19:28:46 +00:00
Michael Lam
6a68bab114
fix(runtime): clarify goal adapter seam semantics
2026-05-18 12:10:17 -07:00
r.kulbaev
2fe0ece991
fix(upload): scope archive extraction to per-session attachment dir
...
handle_upload_extract() used Path(s.workspace) as the extraction root,
bypassing HERMES_WEBUI_ATTACHMENT_DIR entirely. Route through
_session_attachment_dir(session_id) so archives land alongside
single-file uploads and session cleanup covers them.
Add tests and CHANGELOG entry.
Ref #2247
2026-05-18 21:22:02 +03:00
Michael Lam
e94827f460
fix: stop replaying reasoning-only history
2026-05-18 10:50:42 -07:00
Michael Lam
b23fb6ccaa
feat(runtime): route goal through adapter seam
2026-05-18 10:30:26 -07:00
Hermes Agent
42b97d15f6
fix: clear fallback streaming warnings
2026-05-18 12:21:59 -05:00
nesquena-hermes
c7badae039
Stage 383: PR #2515
...
# Conflicts:
# CHANGELOG.md
2026-05-18 16:44:35 +00:00
nesquena-hermes
75f6d2a03c
Stage 383: PR #2522
...
# Conflicts:
# CHANGELOG.md
2026-05-18 16:44:35 +00:00
nesquena-hermes
8286061fb0
Stage 383: PR #2294
...
# Conflicts:
# tests/test_gateway_sync.py
2026-05-18 16:44:26 +00:00
Michael Lam
f3f9f3ed40
fix: allow keyless named custom endpoints
2026-05-18 04:27:31 -07:00
Michael Lam
037652308d
fix: load remote models for named custom providers
2026-05-18 01:08:09 -07:00
junjunjunbong
3a53592107
Add previous messaging session controls
2026-05-17 21:27:32 -07:00
junjunjunbong
98f2814ecd
Fix empty gateway session hiding messaging history
2026-05-17 21:13:24 -07:00
nesquena-hermes
cec1e87d04
Stage 382: PR #2500 (with whitespace polish on panels.js + ARCHITECTURE.md)
2026-05-18 03:45:02 +00:00
nesquena-hermes
42c677b223
Stage 382: PR #2496
2026-05-18 03:43:59 +00:00
nesquena-hermes
ea1261d03b
Stage 382: PR #2501
2026-05-18 03:43:26 +00:00
nesquena-hermes
eef47ea27b
Stage 381: PR #2484
2026-05-18 01:32:21 +00:00
nesquena-hermes
50d4f4cfb9
Stage 379: PR #2480
...
# Conflicts:
# CHANGELOG.md
2026-05-17 23:35:19 +00:00
nesquena-hermes
6f9cead15e
Stage 379: PR #2479
2026-05-17 23:35:18 +00:00
nesquena-hermes
b861422045
Stage 379: PR #2473
2026-05-17 23:35:18 +00:00
nesquena-hermes
935d9e6402
Stage 379: PR #2461
...
# Conflicts:
# CHANGELOG.md
2026-05-17 23:35:18 +00:00
Frank Song
996942429c
Add session-bound CSRF token checks
2026-05-18 07:14:26 +08:00
Michael Lam
f986507809
fix: align fork-from-here with merged messaging history
2026-05-17 15:01:57 -07:00
Michael Lam
a5385e5859
feat(runtime): route cancel through RuntimeAdapter seam
2026-05-17 13:23:22 -07:00