Skip to content

v1.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 07 May 18:12
· 1 commit to main since this release
8196114

What's changed

Added

  • Discoverable "+" button in single-window state — issue #75 — AppKit's native tab bar (with its own "+" button) only renders when ≥2 tabs are in the group, which means single-window users had no way to discover that tabs exist short of Cmd+T muscle-memory. Added a small "+" button at the top-right of the title-bar drag zone that's always visible in single-window state. When a second tab opens and AppKit's own tab bar appears, our button auto-hides so we don't double up with AppKit's "+". Click routes to AppDelegate.newBrowserTab() (the same target as Cmd+T). Reporter: @CygnusIgnis. Closes #75.
  • Standard application menu items (Hide / Hide Others / Show All / Services) — issue #77Cmd+H did nothing because the hand-rolled application menu in AppDelegate.setupMenu() only had About / Check for Updates / Settings / Quit. The Window → Show Hermes item used Cmd+Shift+H (uppercase keyEquivalent), and there was no NSApplication.hide(_:) selector registered against any item with Cmd+H. Added the standard macOS HIG application-menu group between Preferences and Quit: Services submenu (auto-populated by AppKit via NSApp.servicesMenu), Hide [App] (Cmd+H), Hide Others (Option+Cmd+H), and Show All. Reporter: @CygnusIgnis. Closes #77.

Fixed

  • Tab-bar chrome no longer flashes light from overlay or partial-paint samples — issue #70 follow-up — v1.6.2 stopped reading pixel samples for chrome when a <meta theme-color> was available, but the appearance-resolution rule (which decides whether to apply .aqua or .darkAqua) still flipped to light at any luminance ≥ 0.5. A poisoned UserDefaults cache (e.g. an off-white sample stuck from before v1.6.2) could persist and make the next launch open with .aqua even when the user's actual theme was dark — giving them a flash of light AppKit material before the bridge re-sampled. Per Nathan's directive ("default dark, only flip light with strong evidence"), raised the threshold to 0.85 (genuinely near-white). Both code paths — loadCachedTheme() on launch and the live hermesTheme message handler — now share a single AppDelegate.appearanceForLuminance(_:) helper. Canonical light-theme --bg values for hermes-webui are #FEFCF7 (~0.99) and #FAF9F5 (~0.98), well above the threshold; canonical dark-theme --bg values are around #1A1A1A (~0.10), well below. Anything in the 0.5…0.85 murky middle (overlay dim layers, half-translucent panels, partial-paint mount samples) stays .darkAqua. Reporter: @CygnusIgnis (#70 follow-up).
  • "Update Now" no longer navigates to a JSON {"error":"not found"} page — issue #76 — pressing "Update Now" in the WebUI's update banner could land the WKWebView on a bare JSON page (recovers on app restart). Cause: a race during the post-update server restart where _waitForServerThenReload()'s location.reload() arrives at a moment when the server's route table is partially built — the home route returns the {"error":"not found"} JSON shape via the route table's _not_found fallback. Added a defensive guard in decidePolicyFor that cancels any in-app navigation to /api/* paths. The WebUI's JS treats those as fetch targets only; if a navigation slips through (this race or any future regression), the WKWebView keeps the previous page state visible instead of rendering a JSON body as the entire page. Companion WebUI-side fix tracked at nesquena/hermes-webui#1835 to lock down the home route to never return JSON. Reporter: @CygnusIgnis. Closes #76.

Notes

  • Issue #78 (surface compression status) closed as wrong-repo. Real fix targets the WebUI's compression UI gaps — refiled as nesquena/hermes-webui#1832 (in-progress signal), #1833 (in-conversation marker), and #1834 (toast TTL / sticky banner).
  • Issue #73 (latent skin-only sync gap) deferred — every current theme has a distinct --bg, so the bug doesn't surface in production. Stays open against a future skin that overlays accent on a shared --bg.

Download Hermes-Agent-v1.7.0.dmg, open the DMG, and drag Hermes Agent to your Applications folder.

This release is signed with a Developer ID certificate and notarized by Apple. macOS will open it without any Gatekeeper warning.

Requirements: macOS 12+ (Monterey or later)

What's Changed

  • feat: v1.7.0 — Mac chrome polish (Cmd+H, /api guard, dark-default tabs, "+" button) by @nesquena-hermes in #79

Full Changelog: v1.6.4...v1.7.0