github nesquena/hermes-webui v0.51.17
v0.51.17 — 2-PR batch (#1780, #1782)

latest release: v0.51.18
2 hours ago

v0.51.17 — 2-PR contributor batch (kanban early-out + tooltip system overhaul)

🐛 Fixed

  • #1780 by @jasonjcwu — Two small kanban-bridge fixes: stale read-only docstring updated to reflect full CRUD, plus _board_counts_for_slug() early-out via kb.board_exists(slug) for boards whose sqlite hasn't been materialized yet.
  • #1782 by @jasonjcwu — Replace native title="" tooltips with custom CSS tooltips on navigation surfaces. Closes #1775 (reported by @CygnusIgnis on Discord: "It would be great to have tooltips for icons in the left ribbon — Edit: Oh wait, they are there. They just take an oddly long time to appear?"). Native browser tooltip ~1.5s delay reads as "no tooltip exists" — custom tooltips appear at ~150ms instead.

✨ Substantial maintainer-side polish on #1782

The contributor PR shipped the basic CSS conversion. During stage prep we layered on:

  • i18n.js title-clear bug fix — original PR's i18n.js still set el.title = val even when data-tooltip was present, so both tooltips co-fired. Fixed: removeAttribute('title') when custom tooltip exists. Same fix applied to ui.js _applyDashboardStatus and 6 callsites in boot.js (new _setButtonTooltip() helper).
  • CSS rewrite — solid --surface bg, gold-tinted border, warm-white text, z-index 60 → 1500, 8px/24px shadow + ring + inner highlight, 150ms onset / 0ms dismissal. Arrow removed (industry-standard at this scale per VS Code/Slack/Linear).
  • Coverage +11 buttons — composer (Attach/Mic/Voice/Send) + workspace panel header (NewFile/NewFolder/Refresh/etc.). Total covered: 73 elements.
  • .panel-header overflow:hidden → overflow:visible so workspace-panel-header tooltips can escape the bar. Title-text ellipsis preserved by inner span.
  • .has-tooltip--left variant — flips tooltip to LEFT of trigger for right-edge buttons (btnSend), fixing maintainer-reported clipping at viewport edge.
  • btnWorkspacePanelToggle reverted — chip already labels it visibly per "don't add tooltips when context is obvious" principle.
  • 5 pre-existing tests updated to tolerate either title= or data-tooltip=. 3 new regression tests added.

🧪 Tests

4702 → 4723 collected (+21). 4716 passed, 0 failed.

✅ Pre-release verification

  • All maintainer polish committed in stage-311 — Opus advisor reviewed PR head + brief and flagged issues that were already fixed in stage's polish layer (Opus reviews contributor PR head, not the stage)
  • File overlap: NONE between #1780 (kanban) and #1782 (tooltip frontend)
  • All JS/Python files syntax-clean
  • Browser API sanity (11/11 endpoints) — all pass
  • Coordinate-math audit: all 15 side-positioned tooltips fit within 1280px viewport
  • Browser-verified: zero stuck title attributes on has-tooltip elements at runtime
  • Browser-verified each major surface (rail Tasks/Settings, composer Attach files/Send message [via --left variant], workspace panel New folder)

🙏 Closes

  • #1775 (rail tooltip 1.5s native delay reads as 'no tooltip exists')

Full Changelog: v0.51.16...v0.51.17

Don't miss a new hermes-webui release

NewReleases is sending notifications on new releases.