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.jsloads lazily on first use (search-loader.js);dashboard.searchComponentis only guaranteed to exist once that bundle has loaded andinitializeSearchComponent()has run. Both hash-routing paths indashboard.js(routeFromHash()'s#searchbranch and thewindow.__nextdashBootSearchboot-query consumer) calledthis.searchComponent?.openSearchWithQuery?.(query)directly — reaching either one before the bundle loaded made the optional chain no-op, and the boot-query path had alreadydeletedwindow.__nextdashBootSearchby then, so nothing was left to retry once the bundle did arrive. Both now go throughSearchLoader.ensureReady(), the same load-then-open pairingloadThenOpen()already used for a keypress that beat the bundle. Reproduced locally at roughly 1 in 4–6 runs oftests/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 thedismissBlockingOverlays()call their sibling test already had.tests/config-tag-suggestions.spec.js's "applying a suggestion leaves the rows you ticked ticked" checkedcfg.bmSelectedonce, 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 toexpect.poll(), same class of fix as thedashboard-merged-header.spec.jscorrection 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 theshowCollapseAllButtoncheckbox withtoggle.click({ force: true }), which still resolves the element and clicks it over two separate round trips through the Playwright protocol — a window this self-rebuildingdata-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 apage.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.jsonand its index entry, flaggedhideFromModal;whats-new-stub.js'sNEXTDASH_WHATS_NEW_DATA_VERSIONmoved towhats-new-v290,DASHBOARD_RELEASEuntouched.tests/whats-new-hidden-release.spec.jsnow pins v1.11.4 alongside v1.11.1–v1.11.3.go generaterefreshedasset_hashes_gen.go.