Commit Graph
6249 Commits
Author SHA1 Message Date
nesquena-hermes 5ca3bc7f3d docs(changelog): #5437 harden ElevenLabs TTS transport (no-redirect/no-proxy opener) 2026-07-02 21:36:08 +00:00
nesquena-hermes 2dcf7f529e Merge #5437: harden ElevenLabs TTS transport guards (#5430) [rodboev] 2026-07-02 21:35:42 +00:00
nesquena-hermes 3ba8f0780c Merge pull request #5446 from nesquena/release/stage-5441
Release — cap generated update summary cache (#5441, fixes #5435)
2026-07-02 14:27:48 -07:00
nesquena-hermes f7338f32dd docs(changelog): #5441 cap update summary sessionStorage cache at 256KB 2026-07-02 21:14:32 +00:00
nesquena-hermes dc7e9e34d2 Merge #5441: cap generated update summary cache (#5435) [rodboev] 2026-07-02 21:14:03 +00:00
nesquena-hermes 86d64d913c Merge pull request #5445 from nesquena/release/stage-5408
Release — self-hosted provider setup (Ollama/LM Studio) in Settings (#5408, closes #3260)
2026-07-02 13:52:00 -07:00
nesquena-hermesandrodboev e65013676a fix(#5435): cap generated update summary cache
Clean rebase of rodboev's #5441 (rebase-first).

Co-authored-by: rodboev <rodboev@users.noreply.github.com>
2026-07-02 20:46:33 +00:00
nesquena-hermes 01487009d6 fix(#5408): add missing German providers_status_model locale key; correct CHANGELOG to note Test-connection reuses the authenticated onboarding probe (Codex gate findings) 2026-07-02 20:37:15 +00:00
nesquena-hermes 2c0ab5ef94 docs(changelog): #5408 self-hosted provider setup (Ollama/LM Studio) in Settings 2026-07-02 20:22:37 +00:00
nesquena-hermes 8689c40995 Merge #5408: self-hosted provider setup (Ollama/LM Studio) in Settings (#3260) [rodboev] 2026-07-02 20:20:12 +00:00
nesquena-hermes 9e0f0259cf Merge pull request #5443 from nesquena/release/stage-5404
Release — hide inactive approval/clarify dialogs from screen readers (#5404)
2026-07-02 13:09:13 -07:00
nesquena-hermes 4e57aed491 docs(changelog): #5404 hide inactive prompt flyouts from screen readers 2026-07-02 19:52:48 +00:00
nesquena-hermes 517419f18a Merge #5404: hide inactive prompt flyouts from screen readers [sheldon-im] 2026-07-02 19:52:19 +00:00
nesquena-hermes 7cddabbb8c Merge pull request #5440 from nesquena/release/stage-5392
Release — mobile transcript jump-back root fix (#5392, residual #4856)
2026-07-02 12:50:02 -07:00
Rod Boev 4993eed120 refactor(#5430): reuse shared TTS transport scaffolding 2026-07-02 15:43:42 -04:00
nesquena-hermes 75891eac90 docs(changelog): #5392 mobile overflow-anchor defer (residual #4856 jump-back) 2026-07-02 19:36:18 +00:00
nesquena-hermes 2839c16ab7 Merge #5392: defer mobile overflow-anchor suppression across height-churn window (#4856) [allenliang2022] 2026-07-02 19:35:40 +00:00
nesquena-hermes 7ee6a12e44 Merge pull request #5436 from nesquena/release/stage-5402
Release — sidebar action menu stays open during chat scroll (#5402, closes #5347)
2026-07-02 12:26:40 -07:00
Rod Boev 74724b944d test(#5430): keep no-proxy proof off the live network 2026-07-02 15:11:05 -04:00
nesquena-hermes 82dbb8d35e docs(changelog): #5402 sidebar action menu stays open on chat scroll 2026-07-02 19:10:40 +00:00
nesquena-hermes 76f31a5478 Merge #5402: keep sidebar action menu open during chat scroll (#5347) [nankingjing] 2026-07-02 19:10:24 +00:00
Rod Boev fc37919952 fix(#5430): harden ElevenLabs TTS transport guards 2026-07-02 15:10:01 -04:00
nesquena-hermes 6fe063fe23 Merge pull request #5433 from nesquena/release/stage-5400
Release — Transparent Stream flicker/row-drop fix (#5400, closes #5367)
2026-07-02 12:01:33 -07:00
nesquena-hermes 5fe110afd5 docs(changelog): #5400 transparent-stream live-row reconcile 2026-07-02 18:44:52 +00:00
nesquena-hermes 3763f60646 Merge #5400: preserve transparent stream live rows on rerender (#5367) [rodboev] 2026-07-02 18:44:30 +00:00
nesquena-hermes 4130b91988 Merge pull request #5432 from nesquena/release/stage-5412
Release — instant profile-dropdown open (#5412) + gate-found brick fix
2026-07-02 11:42:22 -07:00
nesquena-hermes 176720b55a fix(profiles): guard non-string cached model in dropdown render + purge from cache predicate (Codex gate finding on #5412)
A poisoned cache row {name:'x', model:{}} passed the name-only cache predicate
but threw 'p.model.split is not a function' synchronously on profile-chip click,
bricking profile switching until localStorage was cleared. Guard both render
sites (typeof p.model==='string') and reject unsafe model types in
_profileDropdownDataCacheUsable; regression covers {model:{}} and {model:123}.
2026-07-02 18:27:27 +00:00
nesquena-hermes cd5cb02635 docs(changelog): #5412 instant profile-dropdown open 2026-07-02 18:20:18 +00:00
nesquena-hermes b5bd4465b6 Merge #5412: speed up profile dropdown opening [ruizanthony] 2026-07-02 18:19:57 +00:00
nesquena-hermes 1e1a3dd6f0 Merge pull request #5429 from nesquena/release/stage-5407
Release — TTS DNS-rebinding SSRF hardening (#5407) + CGNAT/Tailscale blocklist follow-up
2026-07-02 11:16:29 -07:00
nesquena-hermes bf1ca227dd fix(tts): block non-globally-routable addrs (CGNAT/Tailscale 100.64.0.0/10) via not-is_global backstop + tests (Opus follow-up on #5407) 2026-07-02 18:04:28 +00:00
nesquena-hermes 15dc671c0a docs(changelog): #5407 TTS DNS-rebind SSRF hardening 2026-07-02 17:45:49 +00:00
nesquena-hermes 24eb618571 Merge #5407: pin OpenAI TTS proxy connect target vs DNS-rebind TOCTOU (#5291) [rodboev] 2026-07-02 17:45:04 +00:00
nesquena-hermes 8c69382a01 Merge pull request #5426 from nesquena/release/stage-p1a
Release p1a — profile-switch new-session 404 (#5423) + health Bearer auth (#5424)
2026-07-02 10:22:20 -07:00
nesquena-hermes 27df663246 docs(changelog): #5423 profile-switch new-session 404 + #5424 health Bearer auth 2026-07-02 17:08:16 +00:00
nesquena-hermes b184588e8a Merge #5424: Bearer auth on remote /health/detailed probe (#5418) [nankingjing] 2026-07-02 17:07:51 +00:00
nesquena-hermes 2f353e7a16 Merge #5423: unblock session/new after profile switch (#5420) [nankingjing] 2026-07-02 17:07:51 +00:00
nesquena-hermesandnankingjing 32baf1302b fix(routes): unblock session/new after profile switch (#5420)
Clean rebase of nankingjing's #5423 (rebase-first).

Co-authored-by: nankingjing <nankingjing@users.noreply.github.com>
2026-07-02 16:34:37 +00:00
nesquena-hermesandnankingjing 4d7fad06e6 fix(health): send Bearer auth on remote /health/detailed probe (#5418)
Clean rebase of nankingjing's #5424 (rebase-first).

Co-authored-by: nankingjing <nankingjing@users.noreply.github.com>
2026-07-02 16:24:39 +00:00
nesquena-hermesandrodboev 4e74de45f8 fix(#5367): preserve transparent stream live rows on rerender (rehydrate controls)
Clean rebase of rodboev's #5400 (rebase-first).

Co-authored-by: rodboev <rodboev@users.noreply.github.com>
2026-07-02 14:49:05 +00:00
nesquena-hermesandrodboev 56889fa35e fix(#5291): pin OpenAI TTS proxy + iterate vetted RRset (DNS-rebind TOCTOU)
Clean rebase of rodboev's #5407 (rebase-first).

Co-authored-by: rodboev <rodboev@users.noreply.github.com>
2026-07-02 14:38:09 +00:00
nesquena-hermesandruizanthony 2032ac079e fix: speed up profile dropdown opening (preserve shared single-profile cache)
Clean rebase of ruizanthony's #5412 (rebase-first).

Co-authored-by: ruizanthony <ruizanthony@users.noreply.github.com>
2026-07-02 13:38:43 +00:00
nesquena-hermesandnankingjing 791523dffa fix(ux): keep sidebar action menu open during chat scroll + close on anchor detach (#5347)
Clean rebase of nankingjing's #5402 (rebase-first).

Co-authored-by: nankingjing <nankingjing@users.noreply.github.com>
2026-07-02 10:09:55 +00:00
nesquena-hermesandrodboev 7220747a1d feat(#3260): self-hosted provider setup (Ollama/LM Studio) in Settings (i18n complete)
Clean rebase of rodboev's #5408 (rebase-first).

Co-authored-by: rodboev <rodboev@users.noreply.github.com>
2026-07-02 08:17:44 +00:00
nesquena-hermesandsheldon-im 012c66d12c Hide inactive flyouts from screen readers (+ visual-hide CSS)
Clean rebase of sheldon-im's #5404 (rebase-first).

Co-authored-by: sheldon-im <sheldon-im@users.noreply.github.com>
2026-07-02 07:15:53 +00:00
nesquena-hermes d096b5f5d9 Merge pull request #5405 from nesquena/gate-rebase/5162-steer-v3
Release v0.51.823: #5162 default message mode rename + steer default (#5145)
2026-07-01 22:54:32 -07:00
nesquena-hermes 9714122c98 chore(changelog): #5162 default message mode rename + steer default 2026-07-02 05:45:54 +00:00
nesquena-hermesandRod Boev b931ae2f9b fix(settings): reconcile #5145 rename+steer-flip onto master's #5170 mirror
Rebase PR #5162 (rename busy_input_mode -> default_message_mode; flip the
default from 'queue' to 'steer') onto current origin/master WITHOUT dropping
the shipped #5170 localStorage persistence mirror.

Rename the mirror machinery to the new setting name for consistency:
  _BUSY_INPUT_MODES        -> _DEFAULT_MESSAGE_MODES        (values unchanged)
  _normalizeBusyInputMode  -> _normalizeDefaultMessageMode  (fallback now 'steer')
  _persistBusyInputMode    -> _persistDefaultMessageMode
  _readPersistedBusyInputMode -> _readPersistedDefaultMessageMode
  window._busyInputMode    -> window._defaultMessageMode (+ renamed exports)

localStorage: write the new 'hermes-default-message-mode' key; read it with a
fallback to the legacy 'hermes-busy-input-mode' key so an existing user's
persisted preference survives the rename.

Preserve #5170 behavior at every mirror site under the new names:
  - boot success  -> window._defaultMessageMode=_persistDefaultMessageMode(...)
  - boot FAILURE  -> window._defaultMessageMode=_readPersistedDefaultMessageMode()
    (NOT a hardcoded 'steer' — a saved 'interrupt'/'queue' must still apply when
    the server is unreachable; do not regress #5167/#5132)
  - preferences autosave, settings-panel load, and _applySavedSettingsUi all
    persist through _persistDefaultMessageMode(...)

Tests updated for the rename while keeping the persistence-behavior assertions
(test_1062, test_5145, test_5167); test_5167 gains explicit guards that the
load-failure path reads the persisted pref and never hardcodes a literal mode,
plus autosave/panel-load mirror-write coverage.

Co-authored-by: Rod Boev <rod.boev@gmail.com>
2026-07-02 05:44:48 +00:00
nesquena-hermes 1f2dac90df Merge pull request #5403 from nesquena/stage-batch-5399-5209
Release v0.51.822: #5399 session-list 502 retry + #5209 update-summary expand
2026-07-01 22:26:39 -07:00
nesquena-hermes 404585a831 chore(changelog): #5399 session-list 502 retry + #5209 update-summary expand 2026-07-02 05:23:01 +00:00