ai-ag2026
dabe7b0ea5
fix(session): keep conversation actions menu clickable
2026-05-22 12:21:10 +02:00
Hermes Agent
9d10390852
Stamp CHANGELOG for v0.51.107 (Release CE / stage-400 / 8-PR batch)
2026-05-21 23:13:31 +00:00
Hermes Agent
0718770fe1
Stage 400: PR #2719 — fix: apply release update target (clear sessionStorage check-once stamp + force banner re-evaluation on user click)
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 22:59:56 +00:00
Hermes Agent
b14aae4ee5
Stage 400: PR #2717 — fix: surface update check fetch errors instead of failing silently
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 22:59:54 +00:00
Hermes Agent
80356c3a47
Stage 400: PR #2709 — fix(model): prefer profile default model on fresh boot when localStorage has no persisted pick
...
Co-authored-by: starship-s <starship-s@users.noreply.github.com >
2026-05-21 22:59:48 +00:00
Hermes Agent
cc36711b9f
Stage 400: PR #2710 — fix: render streamed math incrementally (no flash when delta completes a KaTeX expression)
...
Co-authored-by: Michaelyklam <Michaelyklam@users.noreply.github.com >
2026-05-21 22:59:46 +00:00
Hermes Agent
654f62e0bd
Stage 400: PR #2721 — fix(session): treat active runs as live during repair (skip restart-stale prune for sessions with live streams)
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 22:59:43 +00:00
Hermes Agent
0fae9cbdf1
Stage 400: PR #2723 — fix(chat): dedupe uploaded-file optimistic user turns
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 22:59:40 +00:00
Hermes Agent
3874781a57
Stage 399: PR #2704 — fix(streaming): prevent exponential empty _partial accumulation across reasoning-only cancellations
...
Co-authored-by: wirtsi <wirtsi@users.noreply.github.com >
2026-05-21 17:56:46 +00:00
Hermes Agent
7152da2756
Stage 399: PR #2705 — fix(api): dedupe replayed context_messages so the agent doesn't see duplicates (follow-up to v0.51.96 #2620 )
...
Co-authored-by: AlexeyDsov <AlexeyDsov@users.noreply.github.com >
2026-05-21 17:56:43 +00:00
Hermes Agent
4db8df5e29
Stage 399: PR #2686 — fix(session): dedupe restamped state.db replay rows in /api/session display merge
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 17:56:40 +00:00
Hermes Agent
905b3eba5e
Stage 398: PR #2700 — feat: make pinned session limit configurable (builds on shipped #2614 3-cap)
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 17:43:56 +00:00
Hermes Agent
f563d37244
Stage 398: PR #2696 — feat(runtime): add runner-local adapter selection (RuntimeAdapter slice 4c, feature-flagged)
...
Co-authored-by: Michaelyklam <Michaelyklam@users.noreply.github.com >
2026-05-21 17:43:54 +00:00
Hermes Agent
6864739e55
Stage 398: PR #2703 — fix: detect agent version from copied source (Docker two-container System panel) ( closes #2691 )
...
Closes #2691
Co-authored-by: Michaelyklam <Michaelyklam@users.noreply.github.com >
2026-05-21 17:43:51 +00:00
Hermes Agent
7d3013245a
Stage 398: PR #2687 — feat: hide suggestions preference ( closes #2679 )
...
Closes #2679
Co-authored-by: Michaelyklam <Michaelyklam@users.noreply.github.com >
2026-05-21 17:43:48 +00:00
Hermes Agent
8e1ac89baa
Stage 397: PR #2692 — fix(ui): invalidate transcript cache on same-count content changes
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 17:14:37 +00:00
Hermes Agent
e2338f696f
Stage 397: PR #2688 — fix: resync virtualized sidebar after scroll clamp
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 17:14:36 +00:00
Hermes Agent
d5dcd60981
Stage 397: PR #2674 — fix: new-chat default model provider sync when model id matches but provider differs
...
Co-authored-by: AJV20 <AJV20@users.noreply.github.com >
2026-05-21 17:14:34 +00:00
Hermes Agent
3dd2ace4e1
Stage 397: PR #2689 — fix(chat): preserve inflight send state during start race
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 17:14:33 +00:00
Hermes Agent
12a92dd50a
Stage 397: PR #2671 — fix: SSE reconnect jitter + cron run row inline expansion
...
Closes #2629
Closes #2661
Co-authored-by: AJV20 <AJV20@users.noreply.github.com >
2026-05-21 17:13:59 +00:00
Hermes Agent
92f1896754
Stage 397: PR #2684 — fix: repair stale Codex OpenAI slash-qualified model state
...
Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com >
2026-05-21 17:13:56 +00:00
Hermes Agent
345762cf70
Stage 397: PR #2706 — fix: tablet hardware keyboard Enter sends (treat iPad with attached keyboard like desktop)
...
Co-authored-by: dobby-d-elf <dobby-d-elf@users.noreply.github.com >
2026-05-21 17:13:52 +00:00
nesquena-hermes
c6587091a2
Stage 396: PR #2663
2026-05-21 00:26:54 +00:00
nesquena-hermes
f867b4520b
Stage 395: PR #2662
2026-05-21 00:14:45 +00:00
nesquena-hermes
7479af462b
Stage-394 test fix: set destructive env in test_git_commit_route_rejects_active_stream
...
The test was calling _handle_git_commit() directly in-process, but the
HERMES_WEBUI_WORKSPACE_GIT_DESTRUCTIVE=1 env var was only being set on the
test_server subprocess (via conftest.py L539). In-process the destructive
gate (returns 403) fires before the active-stream gate (returns 409), so
the test never reached the assertion it was trying to verify.
monkeypatch.setenv() restores the test's intent: confirm that when
destructive mode IS enabled, an active stream still blocks mutations with
the more specific 409 code.
2026-05-21 00:06:53 +00:00
nesquena-hermes
cc5f6e3a78
Stage 394: PR #2636
2026-05-20 23:53:04 +00:00
nesquena-hermes
45c7a693af
Stage 394: PR #2625
2026-05-20 23:53:04 +00:00
nesquena-hermes
38933b288d
Stage-394 follow-up: profile-switch reconciliation + a11y switch role + server-side chat/settings filter
...
Per deep-review verdict SHIP-WITH-FIXES on PR #2636 :
1. Profile-switch reconciliation: _refreshProfileSwitchBackground now re-fetches
/api/settings and re-applies hidden_tabs for the new profile. Without this,
Profile A's hidden-tabs choice stayed in effect under Profile B until the
user opened Settings → Appearance.
2. A11y: switched chips from role=button + aria-pressed to role=switch +
aria-checked. The pressed/not-pressed wording confused screen-reader users
because chip-off looks like the off state. Added role=group +
aria-labelledby on the container, and a :focus-visible style on the chips.
3. Server-side belt-and-suspenders: api/config.py now strips 'chat' and
'settings' from hidden_tabs at validation time, matching the client's apply-
time filter. A tampered POST can no longer persist the forbidden values.
3 new regression tests added (chat/settings rejection, profile-switch wiring,
chip a11y attributes).
Co-authored-by: FrancescoFarinola <francesco.farinola@example.com >
2026-05-20 23:05:19 +00:00
Francesco Farinola
5491a54285
fix: address PR review feedback on sidebar tab visibility
...
Three tweaks from reviewer:
1. Harden _applyTabVisibility to skip always-visible panels even if
they appear in hidden_tabs (localStorage tampering, stale server
data). Forces shouldHide=false so stale nav-tab-hidden classes
on chat/settings get removed, not just skipped.
2. Add synchronous inline <script> flash-prevention after sidebar-nav
in index.html. On slow networks, defer scripts run after the
browser incrementally renders the DOM, causing hidden tabs to
flash visible before JS executes. The inline script reads
hermes-webui-hidden-tabs from localStorage and applies
nav-tab-hidden classes before first paint, mirroring the existing
theme/skin/font-size pattern. The boot.js IIFE becomes a secondary
fallback (comment updated).
3. Remove _settingsHiddenTabsOnOpen dead state. It was tracked but
never read for revert — _revertSettingsPreview is intentionally
a no-op for appearance autosave. Removing the tracking makes
the code honest about what it actually does. Also removes the
test_settings_session_tracking test that validated this dead code.
2026-05-20 22:57:36 +00:00
Francesco Farinola
7f1feca3fe
feat: sidebar tab visibility toggle in Settings > Appearance
...
Add chip row in Settings > Appearance that lets users toggle individual
sidebar/rail tabs on or off. Chat and Settings are always visible.
- Backend: hidden_tabs list setting with validation (no bool coerce)
- Frontend: pill chips that scan rail buttons, autosave via appearance
- Boot: _restoreTabVisibility IIFE applies hidden tabs before first paint
- i18n: 11 locales (label + description)
- Tests: 5 regression tests covering backend, frontend contracts,
boot restore, i18n coverage, and settings session tracking
2026-05-20 22:57:36 +00:00
Michael Lam
f17d4e204f
fix: keep resumed CLI sessions in sidebar cap
2026-05-20 15:54:44 -07:00
nesquena-hermes
2e7cdc4b13
Stage 393 follow-up: HTTP integration tests for /api/sessions/events (Opus advisor PR #2637 )
2026-05-20 22:27:23 +00:00
nesquena-hermes
feb35893b9
Stage 393: PR #2637
...
# Conflicts:
# static/sessions.js
2026-05-20 22:24:40 +00:00
nesquena-hermes
4d8b8d0ffe
Stage 393: PR #2633
...
# Conflicts:
# CHANGELOG.md
2026-05-20 22:23:53 +00:00
nesquena-hermes
e35c94bf55
Stage 393: PR #2615
2026-05-20 22:23:53 +00:00
nesquena-hermes
aaf30b7b0a
Stage 392: PR #2643
2026-05-20 21:48:04 +00:00
nesquena-hermes
fa459aa01e
Stage 392: PR #2651
2026-05-20 21:48:04 +00:00
nesquena-hermes
b4a00b5aae
Stage 392: PR #2650
2026-05-20 21:48:04 +00:00
nesquena-hermes
dc0c833744
Stage 392: PR #2647
2026-05-20 21:48:04 +00:00
nesquena-hermes
6ed66daac2
Stage 392: PR #2638
2026-05-20 21:48:04 +00:00
Lumen Yang
71fbc796b2
fix: dedupe replayed context tail after compression
2026-05-20 23:15:54 +02:00
dobby-d-elf
6278222596
tighten session refresh invalidation
2026-05-20 14:40:13 -06:00
starship-s
153e035d12
fix: forward title generation api key
2026-05-20 14:39:38 -06:00
dobby-d-elf
14dd5aa00d
address session event review
2026-05-20 14:33:36 -06:00
dobby-d-elf
87527ff4f6
Fix state db legacy dedup repeat preservation
2026-05-20 14:18:47 -06:00
nesquena-hermes
1e3ca07575
Stage 390: PR #2634
...
# Conflicts:
# CHANGELOG.md
2026-05-20 20:16:30 +00:00
nesquena-hermes
495991c2db
Stage 390: PR #2642
2026-05-20 20:16:30 +00:00
dobby-d-elf
7742b83062
Merge remote-tracking branch 'origin/master' into tool-tooltip-fix
2026-05-20 14:12:29 -06:00
Michael Lam
6e64068f0f
fix: cap CLI session sidebar state scans
2026-05-20 12:47:03 -07:00
dobby-d-elf
58259f6edb
Avoid duplicate session list boot animation
2026-05-20 11:03:37 -06:00