Release CE — stage-400 — v0.51.107 — 8-PR low-risk batch (pin-cap getter rename + upload-turn dedup + active-run repair + KaTeX incremental + profile default model + French locale + update-check error surfacing + update apply path) - #2725
Merged
Merged
Conversation
…dSessionsLimit() (follow-up to v0.51.105 #2700, matches sessions.js getter convention) Co-authored-by: eslicarrillo <eslicarrillo@users.noreply.github.com>
… turns Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
…repair (skip restart-stale prune for sessions with live streams) Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
…sh when delta completes a KaTeX expression) Co-authored-by: Michaelyklam <Michaelyklam@users.noreply.github.com>
…sh boot when localStorage has no persisted pick Co-authored-by: starship-s <starship-s@users.noreply.github.com>
…keys, 88.8% → 96.7% coverage) Co-authored-by: victorwhale <victorwhale@users.noreply.github.com>
…of failing silently Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
…Storage check-once stamp + force banner re-evaluation on user click) Co-authored-by: ai-ag2026 <ai-ag2026@users.noreply.github.com>
This was referenced May 21, 2026
SysAdminDoc
pushed a commit
to SysAdminDoc/hermes-webui
that referenced
this pull request
Jun 26, 2026
Release CE — stage-400 — v0.51.107 — 8-PR low-risk batch (pin-cap getter rename + upload-turn dedup + active-run repair + KaTeX incremental + profile default model + French locale + update-check error surfacing + update apply path)
bernyforce
pushed a commit
to bernyforce/hermes-webui
that referenced
this pull request
Jul 29, 2026
Release CE — stage-400 — v0.51.107 — 8-PR low-risk batch (pin-cap getter rename + upload-turn dedup + active-run repair + KaTeX incremental + profile default model + French locale + update-check error surfacing + update apply path)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release CE — stage-400 — v0.51.107 — 8-PR low-risk batch
Pre-merge gate: ✅ JS+Python syntax, ✅ no merge markers, ✅ no high-risk paths touched, ✅ no Docker / no new concurrency / no CJK escapes, ✅ full pytest 6254 passed (0 failures, after fixing 2 callsite tests that asserted the old function name #2718 renamed), ✅ Opus pre-merge composition review = SHIP with all 4 cross-PR concerns verified clean against master.
PRs in this stage (smallest → largest)
_pinnedSessionsLimit()→_getPinnedSessionsLimit()(follow-up to v0.51.105 feat: make pinned session limit configurable #2700, matches_get*()convention). All 3 callsites updated;window._pinnedSessionsLimitconfig var deliberately preserved[Attached files: ...]suffixtests/test_model_default_boot_precedence.py)fr) locale: +93 missing keys, 88.8% → 96.7% coveragesessionStoragecheck-once stamp + forces banner re-evaluation)Cross-PR composition review (Opus verified, all clean against master)
static/sessions.jsupdated;window._pinnedSessionsLimitconfig var deliberately preserved (different identifier)_sameTranscriptMessageuser branch); KaTeX path is assistant-stream-only. No overlapnewSessionruns later on user action with server-resolved model. Sequence: boot → profile default fills dropdown → user click → server response → #2674 resync runs uncontested?force=1;check_for_updates(force=True)bypasses theCACHE_TTL = 1800short-circuit, so cached error result can't block re-evaluation. Apply path independent of_update_cacheMid-batch test correction
Two existing tests asserted the OLD function name
_pinnedSessionsLimit(). The #2718 PR didn't update them. I patched both as part of the stamp commit:tests/test_configurable_pinned_sessions_limit.py:54-55→_getPinnedSessionsLimit()tests/test_issue2508_session_pin_cap.py:78-79→_getPinnedSessionsLimit()All 6 affected tests pass after the patch.
Invariants preserved
_deduplicate_context_messages()✓_message_identitytuple for empty_partial✓