github jordibrouwer/nextdash v1.11.4

7 hours ago

One real fix and one test correction, held back from the What's new window (hideFromModal) like v1.11.1–v1.11.3, so v1.11.0 keeps leading it.

Search

  • fix — a search reached from the address bar or a bookmarked #search?q=… query could be silently dropped. search.js loads lazily on first use (search-loader.js); dashboard.searchComponent is only guaranteed to exist once that bundle has loaded and initializeSearchComponent() has run. Both hash-routing paths in dashboard.js (routeFromHash()'s #search branch and the window.__nextdashBootSearch boot-query consumer) called this.searchComponent?.openSearchWithQuery?.(query) directly — reaching either one before the bundle loaded made the optional chain no-op, and the boot-query path had already deleted window.__nextdashBootSearch by then, so nothing was left to retry once the bundle did arrive. Both now go through SearchLoader.ensureReady(), the same load-then-open pairing loadThenOpen() already used for a keypress that beat the bundle. Reproduced locally at roughly 1 in 4–6 runs of tests/opensearch.spec.js; 10/10 clean after the fix.

Tests

  • fix — two more flaky assertions, found chasing unrelated CI failures on the runs for v1.11.2 and v1.11.3. tests/opensearch.spec.js's two arrival tests were missing the dismissBlockingOverlays() call their sibling test already had. tests/config-tag-suggestions.spec.js's "applying a suggestion leaves the rows you ticked ticked" checked cfg.bmSelected once, right after a tag-count poll that only proved the tag mutation had landed — the selection-preserving step is separate work on the same refresh and wasn't part of what that poll observed. Not reproducible locally after 15 full-file runs; converted to expect.poll(), same class of fix as the dashboard-merged-header.spec.js correction in v1.11.3.
  • fix — a flaky toggle click in tests/toolbar-button-toggles.spec.js, found chasing the CI failure on the run for this release. "the setting is offered in Appearance and applies without a reload" clicked the showCollapseAllButton checkbox with toggle.click({ force: true }), which still resolves the element and clicks it over two separate round trips through the Playwright protocol — a window this self-rebuilding data-behavior-special="chrome" control landed a rebuild inside under CI load ("element was detached from the DOM, retrying"), eventually exceeding the 30s test timeout. Replaced with a page.evaluate() click, which queries and clicks the element in one synchronous in-page step and so has no gap left to race. 5/5 clean locally after the fix, where it had flaked before.

Docs

  • docs — static/data/whats-new/v1.11.4.json and its index entry, flagged hideFromModal; whats-new-stub.js's NEXTDASH_WHATS_NEW_DATA_VERSION moved to whats-new-v290, DASHBOARD_RELEASE untouched. tests/whats-new-hidden-release.spec.js now pins v1.11.4 alongside v1.11.1–v1.11.3. go generate refreshed asset_hashes_gen.go.

Don't miss a new nextdash release

NewReleases is sending notifications on new releases.