Release CQ: stage-batch1 — 3-PR low-risk batch (v0.51.119) — tool cards / 404 recovery / Hepburn skin#2809
Merged
Merged
Conversation
Add Hepburn skin with full light/dark palette derived from the Hepburn TUI theme. Brand color #c6246a with pink-magenta accents. - Light: soft pink surfaces (#fff3f7 / #fbe4ed) - Dark: deep aubergine (#110a0f / #1e0f19) - Accent: #d44a7a (light) / #f278ad (dark) - Styled: send button, new chat button, tool cards, session indicator Also fix settings panel skin picker to prioritize localStorage over server defaults, so newly selected skins reflect correctly in the dropdown.
This was referenced May 24, 2026
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 CQ — v0.51.119 — stage-batch1 — 3-PR low-risk batch
First "no-intervention" tier batch from the May 24 sweep. Three small contributor PRs that are mechanical, narrowly-scoped, and pre-cleared by Opus advisor:
static/messages.js(done handler)static/sessions.js(boot 404 handler)Cherry-picks
Pre-Opus gate
node -con all touched JSast.parse(no .py files in PRs)Test fix-ups in stamp commit (mechanical, no behavior change)
Three pre-existing tests asserted against literal strings that PRs #2799 and #2808 changed. Per
references/skin-scoped-css-test-trap.mdandreferences/string-assertion-stage-traps.md, auto-fix in the stage commit (not push back to contributors):tests/test_sprint20b.py— 5 send-btn tests usedcss.find('.send-btn{')which now matches Hepburn's:root[data-skin="hepburn"] .send-btn{first. Added_find_global_selector()helper that skips skin-scoped lines. Will protect future skin PRs.tests/test_batch_fixes.py—test_panels_hydrates_appearance_before_models_fetchupdated to match the newconst skinVal=(localStorage.getItem('hermes-skin')||settings.skin||'default').toLowerCase();literal from feat: add Hepburn skin (magenta-rose palette) #2799.tests/test_stale_empty_session_restore.py—test_load_session_clears_saved_stale_404_and_rethrows_to_bootupdated to reflect PR fix(ui): recover from stale /session/{id} on boot-time 404 #2808's new contract (no longer requireslocalStorage.getItem('hermes-webui-session')===sidequality, but addshistory.replaceStateassertion).Opus advisor verdict
PR #2808 edge case (Opus-flagged): if user lands on a stale
/session/{bad_id}URL while localStorage held a different valid session id, the new code clears localStorage and replaceStates to/. After this they get empty-state instead of recovering to the valid localStorage session on next refresh. The author explicitly framed this as "Option A" (URL = source of truth at boot); defensible.What's NOT in this batch
Deferred to later batches (each needs more eyes):
server.pynetwork entry, resubmit of closed fix: add do_OPTIONS handler for CORS preflight requests #2750api/routes.py, needs Opus deep lookapi/streaming.py