Bookmarks, cheat sheet and Statistics — config → bookmarks gets a tag cloud for filtering and selecting, deleting a bookmark can be undone, the cheat sheet opens on the shortcuts for whatever view you are in, and Statistics counting, chart axes and keyboard legends are corrected.
Bookmarks
- new Filter and select from a tag cloud — Tags above the list shows every tag in use, most-used first and sized by count. Picking several matches bookmarks carrying any of them, the same OR the dashboard tag cloud uses; Select these bookmarks turns the filtered result into a ticked selection for the bulk toolbar, and each tag also gets its own removable chip (
dashboard-config.js,config-view.css). - new Deleting a bookmark can be undone — one row or a whole selection, with Undo in the toast. Single-row delete had no undo at all, and the bulk one could be pushed off screen by a keyboard tip: tips are unprompted and run for 12–14s, so a confirmation queued behind one landed long after the action. A real confirmation now takes the slot from a tip (
dashboard-config.js,dashboard-keyboard-tip.js). - fix Rows line up again — the row borrowed a layout built for two children and put six in it, so domain, shortcut, tags and the checking badge spread across the full width and shifted with every row's tag count; long text also ran outside the card. Tags move to their own line past two, and the checking badge sits in a right-hand column with the usage line (
dashboard-config.js,config-view.css). - fix Long lists stay fast — the load-more sentinel re-triggered itself after every repaint, so the list loaded to the end on open rather than a page at a time. Each batch now waits for a scroll; on a 500-bookmark library the redraw that runs on every keystroke in the search field drops from ~64ms to ~8ms (
dashboard-config.js). - fix Paging follows the scroll container — load-more watched the window instead of the panel that actually scrolls, so the bookmark list could stall after the first page (
dashboard-config.js). - improved Rows announce their position — the feed is exposed as a list, with
aria-posinset/aria-setsizecounting the whole filtered set rather than the rows paging has rendered (dashboard-config.js).
Cheat sheet
- new Opens on the view you are in — from Health the health shortcuts lead and are marked, likewise Inbox, inbox triage, and config. Nothing is hidden or reordered and the filter still searches every section; opening it from the bookmark grid is unchanged (
keyboard-cheat-sheet-registry.js,dashboard-ui-helpers.js,modal.css). - new Printable one-page PDF — linked from Config → Overview and the top of Config → Help, always opening in a new tab (
dashboard-config.js,generate-cheatsheet.cjs). - new
:helpopens it too — an alias for:cheat, alongside!andF1(search-commands.js). - improved Health, inbox and triage shortcuts listed — the sheet carries the same rows as the legends under those views, from one shared registry that also feeds the printable sheet, so the two cannot drift apart (
keyboard-view-legends.js,keyboard-cheat-sheet-registry.js).
Statistics
- fix Categories are counted per page — a bookmark stores a bare category name plus the page it belongs to, so the same name on two pages is two categories, and the Categories tile counted them that way. The panels underneath keyed on the name alone, merging the two into one row and averaging their opens together — a category used ten times on one page and never on another reported five opens per bookmark for both. The same mis-keying broke the label lookup, so rows showed the raw id rather than a display name. Labels are also no longer affected by a page filter left on Config → Bookmarks, and the page name is prefixed only when a category name occurs on more than one page (
dashboard-config.js). - fix A bookmark dated in the future no longer breaks the activity chart — clock skew between devices, or an import carrying a bad date, produced a negative bucket offset that wrote past the end of the bucket array. The array grew holes, every total over it came out as
NaN, and a 30-day range drew 31 bars. Such a date now falls in the newest bucket, a non-numeric timestamp is ignored rather than poisoning the total, and one shared rule feeds the bars together with the figures beneath them (dashboard-config.js). - new Chart axes are labelled — the activity bars carry readable axis labels so the range and scale are obvious at a glance (
dashboard-config.js,config-view.css). - fix Activity bar counts opens, not lifetime rows — the bar could count every bookmark ever opened instead of opens in the selected window (
dashboard-config.js).
Dashboard
- fix Header tooltips are no longer cut off — the tooltips on pages, inbox, health and config anchored above their icon and ran off the top of the window. They open downwards, stay inside the window near the right edge, and their key chips carry the same fill as the toolbar buttons (
dashboard-toolbar.js,dashboard-enhancements.css). - improved The Shift+B tip joins the normal rotation — it was pinned to first place after install and gated every other tip until it had been seen. It is now one of the tips in the catalog, subject to the same multi-day gap and the Show occasional keyboard tips switch (
dashboard-keyboard-tip.js,config-help-tips.js). - new One switch for keyboard-shortcut popovers — header kbd tooltips and similar hints can be turned off together from settings (
dashboard-visual.js,dashboard-config.js). - fix Inbox triage keeps focus — Tab could walk out of the triage overlay into the page behind it, and closing it dropped focus to the top of the document rather than the button that opened it; the snooze menu answers arrow keys (
dashboard-inbox-triage.js,dashboard-inbox.js,focus-trap-utils.js). - fix Push permission refusals are explained — when the browser blocks notification permission, the notice now says so plainly instead of blaming the browser generically (
push-notice.js).
Config
- improved One keyboard legend across the config sections — Inbox, Health and Config → Bookmarks draw each key as a chip beside its label; the form sections (Statistics, Behavior, Appearance, Data & backups) and the pages/tags list instead printed one flat sentence with the keys buried in prose, under a divider mixed from the text colour at 12% alpha that was nearly invisible against the panel. All three config legends now share one rule and one helper. Keys stay untranslated — they are what is printed on the keyboard — and only the action labels are translated, matching how Inbox and Health already split them (
dashboard-config.js,config-view.css).
Docs
- fix — What's new modal, Config → Overview → Latest update, CHANGELOG, README and MANUAL for v2026.09.2;
DASHBOARD_RELEASE→2026.07-dashboard-release-v168,NEXTDASH_WHATS_NEW_DATA_VERSION→whats-new-v227. The modal supports ahideFromModalindex flag for future maintenance releases that should be recorded but not announced (whats-new-modal.js,whats-new-stub.js).