[1.132.0] — 2026-07-31
Changed
#/scanresults-rendering subsystem extracted topublic/js/lib/scan-results.js(file-size-contract paydown —public/js/views/scan.jshad grown to ~1254 LOC). The subsystem —renderResults,buildChipRow,getRows, the row/facet builders, the seniority/country option painters, and theFALLBACK_SOURCESregistry mirror — moves into awindow.ScanResults.create(ctx)factory that closes over a context object the view supplies (filter elements, the active-facet Sets, the paginator, two-pager data, and alastResultsgetter). No behaviour change — the functions were moved verbatim and their closure vars mechanically rewired toctx.*;scan.jsis now ~906 LOC. (Still above the 800-LOC target — a second extraction pass is planned; the file-size contract for the two remaining JS-view outliers,scan.jsandconfig.js, is tracked indocs/sdd/CONVENTIONS.md.)- Source-static tests read the two files via
tests/helpers/scan-src.mjs::loadScanSrc()(likeloadAppCss());tests/scan-fallback-sources.test.mjsnow reads the registry mirror fromscan-results.js. - New in-browser regression gate —
tests/playwright-scan-filters.mjsseeds a canneddata/last-scan.jsonand drives every#/scanfilter (Source, Seniority, Remote, Age, text include/exclude), asserting exact row counts, so the extraction is verified against real browser behaviour (run vianpm run test:e2e:browser). Stable filter-control ids (#scan-filter-*,#scan-apply) were added for it.
Housekeeping
- The README "Latest release" banner is slimmed to a one-line summary + a link to the full changelog (the long per-version narrative wall is retired — history lives in
CHANGELOG*.md). Applied across all 17 locales. - CodeQL cleanup — removed the dead
readFileSync/resolve/APP_CSSpath-scaffolding left over from the v1.131.2loadAppCss()migration in four CSS source-guard tests (design-polish-v1115,managed-focus-no-ring,toast-fab-clearance,wcag-target-size); those imports had become unused once the tests switched toloadAppCss(), closing the eight openjs/unused-local-variablecode-scanning alerts. Test-only, no behaviour change.