zapabob
1f51ef14d0
fix: detect shared OpenCode API key
2026-05-29 23:22:15 +00:00
nesquena-hermes
95cee09c31
Merge pull request #3144 from nesquena/release/stage-batch41
...
Release v0.51.159 — Release EE (stage-batch41: 5-PR low-risk cleanup)
v0.51.159
2026-05-29 15:28:50 -07:00
nesquena-hermes
6d61fbdd17
stage-batch41: CHANGELOG for v0.51.159 (Release EE)
2026-05-29 22:25:37 +00:00
nesquena-hermes
4e382e4f36
stage-batch41: update test_issue1824 snippet-limit assertion 200->4000 (follows #3117 )
2026-05-29 22:22:05 +00:00
nesquena-hermes
11ba36beb9
Merge PR #3135 into stage-batch41
...
# Conflicts:
# CHANGELOG.md
# api/routes.py
2026-05-29 22:15:46 +00:00
nesquena-hermes
111e7a11b1
Merge PR #3118 into stage-batch41
...
# Conflicts:
# CHANGELOG.md
# static/boot.js
2026-05-29 22:14:16 +00:00
nesquena-hermes
de90ca3abe
Merge PR #3117 into stage-batch41
2026-05-29 22:13:08 +00:00
nesquena-hermes
5c96764e3d
Merge PR #3099 into stage-batch41
...
# Conflicts:
# CHANGELOG.md
2026-05-29 22:13:08 +00:00
nesquena-hermes
9ca0bdccc8
Merge PR #3098 into stage-batch41
...
# Conflicts:
# CHANGELOG.md
2026-05-29 22:12:43 +00:00
nesquena-hermes
1ebd1601d6
Merge pull request #3143 from nesquena/release/stage-batch40
...
Release v0.51.158 — Release ED (stage-batch40: 5-PR low-risk cleanup)
v0.51.158
2026-05-29 15:11:11 -07:00
nesquena-hermes
edd80751fc
stage-batch40: CHANGELOG for v0.51.158 (Release ED)
2026-05-29 22:01:47 +00:00
nesquena-hermes
ff78a422ca
Merge PR #3139 into stage-batch40
2026-05-29 22:01:06 +00:00
nesquena-hermes
3206aec3f3
Merge PR #3138 into stage-batch40
...
# Conflicts:
# CHANGELOG.md
2026-05-29 22:01:06 +00:00
nesquena-hermes
9aff2a16d4
Merge PR #3137 into stage-batch40
2026-05-29 21:59:24 +00:00
nesquena-hermes
d072039237
Merge PR #3130 into stage-batch40
2026-05-29 21:59:24 +00:00
nesquena-hermes
649f64b374
Merge PR #3129 into stage-batch40
2026-05-29 21:59:24 +00:00
Philippe Le Rohellec
e6aa9271c2
fix(models): preserve provider-qualified model selections in the picker
...
- Stop provider-qualified or slash-qualified model inputs from fuzzy-matching a
sibling catalog entry when the exact requested model is missing from the
curated picker list.
- Preserve the raw typed selection so uncatalogued provider-routed models
fall through to a temporary custom option instead of silently snapping to a
nearby curated model.
- Add generalized regression coverage for provider-qualified uncatalogued
picker selections.
2026-05-29 10:24:44 -07:00
AJV20
3c2f98eb23
fix: polish WebUI assistant replies
2026-05-29 13:01:14 -04:00
AJV20
ce82ea3fdf
fix: add joplin search auth compatibility
2026-05-29 12:36:27 -04:00
AJV20
35f89c4e5b
fix: harden external notes guardrails
2026-05-29 12:30:04 -04:00
Sanjays2402
e09c6aa6bd
Fix #3076 : don't force mobile send-on-Enter when a real keyboard is attached
...
A touch-primary device (`matchMedia('(pointer:coarse)')` is true) can
still have a physical keyboard available — Android tablet + Bluetooth
keyboard, detachable Surface, iPad + Magic Keyboard. The existing
`_mobileDefault` gate flipped Enter to newline on every such device the
moment the visual-viewport heuristic *thought* the soft keyboard was
open, which it often did when the on-screen IME hadn't actually come up
because the user is typing on the hardware keys. Result: Shift+Enter and
Ctrl+Enter never sent and the user could not submit at all.
Add `_hasFinePointerCoexisting()` (`(any-pointer:fine)`) and short-
circuit the mobile-default path when ANY fine pointer is present. That
flag is true whenever a real mouse/trackpad/stylus is paired, which is
the strongest browser signal we have for 'there is a hardware input rig
in the picture too'. Pure-touch phones/tablets are unaffected.
2026-05-29 03:26:12 -07:00
Sanjays2402
7c3d85d6c5
Fix #3107 : throttle active-session external-refresh poll from 5s to 30s
...
The active-session 'is it externally updated?' fallback poll fires every
5 s. On long sessions this causes visible scroll churn (the rendered
message list is rebuilt and the scrollTop is restored on a 5-second
cadence) and a measurable network/CPU floor even when the user is just
reading.
This poll is a *fallback* for the case where the SSE session-events
stream is unavailable; SSE already invalidates the active session in
real time. Pushing it to 30 s keeps the safety net for SSE-broken
environments without it acting as a primary refresh path.
Regression introduced in 467ef33a .
2026-05-29 03:25:49 -07:00
mysoul12138
7f63a1ce71
Add regression test for JS/Python snippet limit parity
...
Prevents the JS slice(0,N) and Python _TOOL_RESULT_SNIPPET_MAX from
drifting apart again.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-29 16:12:05 +08:00
Dennis Soong
f5dc9477ff
fix: submit composer on numpad enter
2026-05-29 13:00:15 +08:00
mysoul12138
b476126cb9
fix(ui): match tool result snippet limit to backend (200 -> 4000 chars)
...
_cliToolResultSnippet truncated to 200 chars while the backend's
_tool_result_snippet uses 4000. This caused tool card details to be
more aggressively truncated after session reload than during live
streaming.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-29 12:34:10 +08:00
ai-ag2026
53f16c4ee6
fix: log WebUI shutdown diagnostics
2026-05-28 23:22:31 +02:00
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
nesquena-hermes
cf003ae986
Merge pull request #3096 from nesquena/release/stage-batch39
...
stage-batch39: v0.51.157 / Release EC — 5-PR mixed-risk cleanup
v0.51.157
2026-05-28 13:08:40 -07:00
AJV20
b76a6dfedb
fix: forward gateway tool activity to webui
2026-05-28 16:03:16 -04:00
nesquena-hermes
0459f60b5c
stage-batch39: stamp v0.51.157 / Release EC
...
5-PR mixed-risk cleanup:
- #3090 gateway-chat forwards prefill+session-context into delegated Gateway turns
- #3091 sidebar keeps newer compressed continuation visible; lineage-aware state-db dedupe; session-arc marker exclusion
- #3092 browser-transcript memory guidance prompt addition
- #3093 reasoning-effort max parity with hermes_constants
- #3094 webui_prefill_context_max_chars budget (default 12000) for prefill payloads
2026-05-28 19:52:56 +00:00
nesquena-hermes
65dc5f7cf1
stage-batch39: add CHANGELOG entry for #3091 (no entry in original PR)
2026-05-28 19:52:10 +00: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
nesquena-hermes
5ec136af3b
Merge pull request #3095 from nesquena/release/stage-batch38
...
stage-batch38: v0.51.156 / Release EB — 2-PR Tier B cleanup
v0.51.156
2026-05-28 12:45:09 -07:00
nesquena-hermes
993e251435
stage-batch38: stamp v0.51.156 / Release EB
...
2-PR Tier B cleanup:
- #3084 harden WebUI request/session/runtime edges (auth.py thread-safety + body validation + frontend storage guards + sw.js vendor precache + i18n key fills + workspace_git test default-branch)
- #3087 model_provider fallback only when same model — fixes fresh-session model_provider=null bug
2026-05-28 19:38:29 +00:00
nesquena-hermes
f7b4c6b0f4
Merge PR #3087
...
# Conflicts:
# CHANGELOG.md
2026-05-28 19:38:10 +00:00
Hermes Agent
b92204a7b7
fix(sidebar): keep newer continuation visible over older snapshot
2026-05-28 13:38:06 -06:00
nesquena-hermes
d2265aaca3
Merge PR #3084
2026-05-28 19:37:11 +00: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
79fd4b64c2
test: make gateway context test self-contained
2026-05-28 14:56:28 -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
nesquena-hermes
20f8c7c02d
Merge pull request #3089 from nesquena/release/stage-batch37
...
stage-batch37: v0.51.155 / Release EA — 3-PR very low-risk cleanup
v0.51.155
2026-05-28 11:47:06 -07:00
AJV20
609a0c887b
fix: carry WebUI context through gateway chat
2026-05-28 14:33:32 -04:00