v0.51.8 — 7-PR full-sweep batch
Activity row, OAuth, scroll, profile context, CLI catalogs, sidebar hover
✨ Added
- #1727 by @Michaelyklam — Link Claude Code OAuth in onboarding (closes #1362). Host-credential linking flow rather than a browser-exposed Anthropic token flow.
🐛 Fixed
- #1725 by @Michaelyklam — Simplify compact Activity row summary. Drops the noisy tool-name list and trailing count badge; summary is now intentionally terse (
Activity: N tools+ duration). - #1726 by @Michaelyklam — Delegate generic provider catalogs to Hermes CLI (slice of #1240 source-of-truth umbrella). Four-tier resolution order: explicit
models:allowlist → CLI live → static_PROVIDER_MODELSfallback → auto-detect. - #1728 by @starship-s — Preserve profile context when starting chats. Path/mtime-aware
get_config()reload + chat-start placeholder retag. - #1729 by @Michaelyklam — Persist compact Activity disclosure state.
localStorage['hermes-activity-disclosure:<sid>:<turn_key>']per chat per turn. - #1730 by @Michaelyklam — Prevent sticky sidebar hover drag state.
_pointerActivegate so plain hover doesn't enter.dragging. - #1732 by @Sanjays2402 (FIRST PR — welcome!) — Unpin scroll on small upward motion during streaming (closes #1731). Direction-aware fix that preserves the #1360 macOS WKWebView momentum protection on the re-pin path.
🛠 In-stage absorbed fixes
- Test-isolation fix (mandatory):
monkeypatch.setattr(config, 'cfg', X)survives PR #1728's path/mtime-awareget_config()reload._cfg_has_in_memory_overrides()now also detectscfg is not _cfg_cache. 4 new regression tests pin both prongs. - Defense-in-depth:
tests/test_sprint3.py::test_skills_list*skip on empty list (prong 2 of test-isolation-flake-recipe). - Wall-clock flake fix:
tests/test_issue1144_session_time_sync.py::test_relative_time_uses_server_clockpinsDate.now()to a fixed instant (was failing for ~5 minutes per day around 08:00 UTC). - Opus follow-up:
_lastScrollTopreset on session switch (#1732 follow-up — Opus stage-302 SHOULD-FIX absorbed in-release).
🧪 Tests
4537 → 4584 passing (+47 regression tests). 0 regressions. Full suite ~128s. Stably green across multiple clean runs.
✅ Pre-release verification
- All 7 PRs CI-green individually + rebased onto current
origin/masterbefore staging. - One mechanical sibling-collision resolved (#1725 + #1729 on
ensureActivityGrouptemplate). - All JS files syntax-clean (
node -c). - Browser API sanity (11/11 endpoints) + 20 QA tests via
webui_qa_agent.sh— all pass. - Opus advisor: SHIP, 5/5 verification clean, 0 MUST-FIX, 1 SHOULD-FIX absorbed, 1 SHOULD-FIX deferred to follow-up issue #1736 (
_clear_anthropic_env_valuesenv-var race, onboarding-time-only).
🙏 Closes
Full Changelog: v0.51.7...v0.51.8