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 viakb.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 = valeven whendata-tooltipwas present, so both tooltips co-fired. Fixed:removeAttribute('title')when custom tooltip exists. Same fix applied toui.js_applyDashboardStatusand 6 callsites inboot.js(new_setButtonTooltip()helper). - CSS rewrite — solid
--surfacebg, 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-headeroverflow:hidden → overflow:visible so workspace-panel-header tooltips can escape the bar. Title-text ellipsis preserved by inner span..has-tooltip--leftvariant — flips tooltip to LEFT of trigger for right-edge buttons (btnSend), fixing maintainer-reported clipping at viewport edge.btnWorkspacePanelTogglereverted — chip already labels it visibly per "don't add tooltips when context is obvious" principle.- 5 pre-existing tests updated to tolerate either
title=ordata-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
titleattributes 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